在python中,可以通過名稱輕鬆引用全局方法。在類方法中引用(僅用於模塊)全局函數
def globalfoo(a):
print(a)
class myClass:
def test(self):
v = globalfoo
v("hey")
t = myClass()
t.test()
現在在python中,還可以通過在兩個下劃線前面加上一個(類)方法來「隱藏」它。 - 我認爲(!)可以爲全局函數做同樣的事情 - 只做一個全局函數模塊。 (與C++類似,人們可以決定將函數聲明放在標題中,所以它只對當前編譯單元可見)。
我又試圖結合這一點:
def __globalfoo(a):
print(a)
class myClass:
def test(self):
v = __globalfoo
v("hey")
t = myClass()
t.test()
然而,這似乎並沒有工作,則會引發錯誤認爲「_myCLass__globalfoo」是不確定的。那麼,我將如何使這兩件事情有效:對一個函數的引用。並從外部範圍隱藏功能?
在這種情況下,靜態方法是唯一/最好的解決方案嗎?
爲什麼不只是在類中定義該功能? – Netwave
是的,'@ staticmethod'是一個不錯的和乾淨的解決方案。 – sobolevn
@DanielSanchez,因爲函數不需要類*中的任何東西。它也不是特別與班級相結合。對於其他類也可能是一個有用的實用函數。但是,將其公諸於衆是非常具體的:它基本上是一個非常成熟的數學方程,它部分解決了。 – paul23