2017-07-17 53 views
2

與許多語言一樣,Python將方法聲明爲private,protected或public。 C#還有「內部」方法,可以從課程外部訪問,但不能從程序外部訪問。Python是否有一個約定,用於將方法聲明爲可以從類外部訪問,但不能從程序外部訪問?

Python中的私有和受保護的方法沒有被強制執行 - 它們只是一個命名約定。 Python是否有類似的約定來聲明一個方法應該可以從類的外部訪問,而不是公共接口的一部分? Python中的公共方法是否被假定爲公共接口的一部分?

+2

什麼會被認爲是 「程序外」? –

+0

@ScottHunter我指的是隻能被程序中其他模塊訪問的代碼。 – thePhysicist8

回答

2

模塊級別的私有函數可能有幫助嗎?

f.py

def __privFunc(): 
    print 'Yes' 

def func(): 
    print 'Yolo' 

__privFunc默認情況下不進口

>>> from f import * 
>>> __privFunc() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name '__privFunc' is not defined 
>>> func() 
Yolo 
相關問題