我正在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