我試着寫類似引用自己的類:默認變量在python
class MyClass(object):
@staticmethod
def test(x, y, z=None):
if not z:
z = external_function(MyClass)
是否有可能在python把它改寫成類似:
class MyClass(object):
@staticmethod
def test(x, y, z=external_function(MyClass)):
pass
(第二代碼做不起作用,因爲它引用的MyClass在這一點上沒有定義)
類方法必須將實例變量(object)'self'作爲它們的第一個變量。 99%的時間,你沒有將類傳遞給外部函數,而是將實例變量(或對象)'self'傳遞給外部函數。整個班級你正在做什麼,看起來不正確。你想寫一個'@ classfunction'嗎?還是你想操縱這個類的一個對象? – 2011-06-03 10:11:05
它實際上是'@ staticmethod'。 – 2011-06-03 10:19:20
不解決你的問題,但你應該真的使'test'成爲一個* class *方法,它將'cls'作爲第一個參數,然後在調用'external_function'時使用它。 – 2011-06-03 10:48:28