def _private_1(name):
return 'hello, %s' % name
def _private_2(name):
return 'hi, %s' % name
def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)
try正常的函式和變數名是公開的(public),可以被直接引用,比如:
abc
,x123
,pi
等;
類似__***__
這樣的變數是特殊變數,可以被直接引用,但是有特殊用途,比如__author__
,__name__
就是特殊變數。
類似_***
和__***
這樣的函式或變數就是非公開的(private),不應該被直接引用,比如_abc
,__abc
等;
之所以我們說,private函式和變數「不應該」被直接引用,而不是「不能」被直接引用,是因為python並沒有一種方法可以完全限制訪問private函式或變數,但是,從程式設計習慣上不
應該引用private函式或變數。
我們在模組裡公開greeting()
函式,而把內部邏輯用private函式隱藏起來了,這樣,呼叫greeting()
函式不用關心內部的private函式細節,這也是一種非常有用的**封裝
和抽象的方法,即:外部不需要引用的函式全部定義成private,只有外部需要引用的函式才定義為public。
public和private的區別
1.封裝的概念 1 public該類或非該類均可以訪問 同乙個類 左大括號和右大括號之間。同乙個包的類 在乙個包 package 中,class和public class為同乙個包的類,屬於同乙個檔案。不同包內的子類 分別建立兩個不同的包 package 在每個包中,分別建立class的類,稱為不同...
private和public稱為成員訪問限定符
private和public稱為成員訪問限定符 member access specifier 除了private和public之外,還有一種成員訪問限定符protected 受保護的 用protected宣告的成員稱為受保護的成員,它不能被類外訪問 這點與私有成員類似 但可以被派生類的成員函式訪問...
private繼承與public繼承
private 能夠訪問 1.該類中的函式 2.友元函式。不能訪問 1.public繼承的子類和private繼承子類 2.該類的物件。protected 能夠訪問 1.該類中的函式 2.public繼承的子類和private繼承子類 3.友元函式。不能訪問 1.該類的物件。public 能夠訪問 ...