无法识别Python实例变量 [英] Python Instance Variable not recognized
本文介绍了无法识别Python实例变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Python开发此OOP程序
I'm working on this OOP program in Python
class SimpleString():
popSize = 1000 #Should be even number
displaySize = 5
alphatbet = "abcdefghijklmnopqrstuvwxyz "
def __init__(self):
pop = numpy.empty(self.popSize, object)
target = self.getTarget()
targetSize = len(target)
def genNewPop(self):
for i in xrange(self.popSize):
pop[i] = Item(self.genNewString())
def genNewString(self):
s = ""
for i in xrange(targetSize):
s += chr(random.randint(len(alphabet)))
return s
def main():
ss = SimpleString()
ss.genNewPop()
main()
在genNewString(self)方法中,它一直告诉我未定义实例变量targetSize!我尝试将self.targetSize放在其位置,但随后我得到一个错误,即SimpleString实例没有属性'targetSize',即使它被分配为实例变量.
In the genNewString(self) method it keeps telling me the instance variable targetSize is not defined! I tried putting self.targetSize in its place but then I get an error SimpleString instance has no attribute 'targetSize' even though it is assigned as an instance variable.
推荐答案
Python中的所有成员都需要显式的self.
:
All members in Python require the explicit self.
:
def __init__(self):
self.pop = numpy.empty(self.popSize, object)
self.target = self.getTarget()
self.targetSize = len(self.target)
def genNewString(self):
s = ""
for i in xrange(self.targetSize):
s += chr(random.randint(len(self.alphabet)))
return s
这篇关于无法识别Python实例变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文