Python实例变量无法识别

时间:2013-11-14 19:25:59

标签: python oop variables

我正在用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',即使它被指定为实例变量。

1 个答案:

答案 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
相关问题