2013-11-14 6 views
-3

Я работаю над этой ООП программы в PythonPython Instance Variable не признал

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 он продолжает говорить мне переменную targetSize экземпляра не определен! Я попытался поставить self.targetSize на свое место, но затем я получаю сообщение об ошибке. У экземпляра SimpleString нет атрибута targetSize, даже если он назначен как переменная экземпляра.

ответ

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 
Смежные вопросы