我正在用Python编写这个OOP程序
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',即使它被指定为实例变量。
答案 0 :(得分:5)
Python中的所有成员都需要明确的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