2015-08-04 4 views
1

Это код питона, который вызывает у меня проблемы:Python: не может решить AttributeError - объект не имеет атрибут ххх

# -*- coding: utf-8 -*- 


class ObjectType2 (object): 
    def __init__ (self): 
     self.name = "" 
     self.value2 = 0 


class ObjectType1 (object): 
    def __init (self): 
     self.value = 0 
     self.variables = [] 


class MainStruct (object): 

    def __init__ (self): 
     index1 = 0 
     index2 = 0 
     self.objects1 = [] 
     for index1 in [0, 1, 2]: 
      self.objects1.append(ObjectType1()) 
      self.objects1[index1].value = index1 
      self.objects1[index1].variables.append(ObjectType2()) 



if __name__ == '__main__': 

    foobar = MainStruct() 
    for x in foobar.objects1: 
     print(x.value) 

Когда я исполню его, я получил сообщение об ошибке: folowing

Traceback (most recent call last): 
    File "C:\Users\Franck\Documents\Developpement\python\dbc_file_reader \test1.py", line 31, in <module> 
    foobar = MainStruct() 
    File "C:\Users\Franck\Documents\Developpement\python\dbc_file_reader\test1.py", line 25, in __init__ 
    self.objects1[index1].variables.append(ObjectType2()) 
AttributeError: 'ObjectType1' object has no attribute 'variables' 

Похоже, что это связано с пустой инициализацией списка в ObjectType1, но я не могу понять, в чем проблема. Может ли кто-нибудь указать мне, где проблема?

ответ

4

The

def __init (self): 

должно быть

def __init__(self): 
      ↑↑ 

без двух Продольный подчеркивает это просто метод, как и любой другой, а не конструктор.

+0

Упс! Спасибо за ответ. Я потратил буквально часы на поиск решения, и это была опечатка f ******! Мне стыдно... – Franck

Смежные вопросы