我正在Python 2.7中開發一個程序,發現自己試圖在同一個類中傳遞一個Python類字段作爲參數。雖然我修改了我的代碼以使其更清潔(從而消除了此構造的需要),但我仍然好奇。爲什麼我不能將Python類字段作爲參數傳遞?
對於一些實例中(巨大簡化,但概念是存在的):
[注意:對於實施例1和2中,假設我想任取一個數作爲輸入,並增加它,或增加當前值]
實施例1
class Example:
def __init__(self,x):
self.value = x
def incr(self,x=self.value):
self.value = x + 1
結果:
"NameError: name 'self' is not defined"
例2.
class Example:
def __init__(self,x):
self.value = x
def incr(self,x=value):
self.value = x + 1
結果:
"NameError: name 'value' is not defined"
例3
class Example:
def __init__(self,x):
ex2 = Example2()
self.value = ex2.incr(x)
def get_value(self):
return self.value
class Example2:
def __init__(self):
self.value = 0
def incr(self,x):
return x + 1
ex = Example(3)
print ex.get_value()
結果:
4
要重申我的問題,我爲什麼不能傳遞一個Python類字段作爲它自己的參數方法?
如果您有任何其他問題或需要更多信息,請告知我們。謝謝!
您的問題? http://stackoverflow.com/questions/1802971/nameerror-name-self-is-not-defined – russ36363 2012-08-03 22:18:21