2015-12-09 3 views
-1

Проблемы с пониманием проблемы в моем коде, новые для классов (как правило, тоже python, извините, если я неправильно назову). Я получаю эту ошибку:Python Classes (AttributeError: '' объект не имеет атрибута '')

Я думаю, что мой код слишком длинный, чтобы включить сюда, поэтому я сделал упрощенную версию, чтобы протестировать концепцию ниже.

Вопрос в том, Как создать новый объект self "self4"? Что тогда будет доступно для других функций внутри класса. В настоящее время я получаю эту ошибку.

AttributeError: 'className' object has no attribute 'self4'

class className(object): 

    def __init__(self, self1=1,self2=2,self3=3): 
     self.self1=self1 
     self.self2=self2 
     self.self3=self3 

    def evaluate(self, self5): 
     print className.func1(self) + className.func2(self) 
     self.self5=self5 
     print className.func1(self) 

    def func1(self): 
     return self.self1 + self.self5 

    def func2(self): 
     self.self4 = self.self1+self.self2+self.self3 
     return self.self4 

имя_файла tester.py

import tester.py 

mst=tester.className() 

mst.evaluate() 
+1

Почему вы не называть 'self.func2()' в '__init__'? – falsetru

+0

Я добавил, как я называю этот код. Я хочу иметь возможность называть оценку для разных условий, например. self1 = 4 и self1 = 3. – WBM

+1

Я только что запустил код в вашем вопросе, и он отлично работает .... он печатает 7 6. Вопрос недействителен ... – Pandrei

ответ

0

Редактировать:
Ваш код работает нормально!
В чем проблема?

Я все еще думаю, что лучше переместить self4 в init!

Оригинал
Я думаю, что наиболее логичным было бы определить self4 на INIT:

class className(object): 
    def __init__(self, self1=1, self2=2, self3=3): 
     self.self1 = self1 
     self.self2 = self2 
     self.self3 = self3 
     self.self4 = None 

    #rest of class 
+0

код в вопросе работает отлично .... – Pandrei

+0

Действительно, он это сделал, попробовал прямо сейчас. Значит, в принципе нет ошибок и, следовательно, нет вопроса ?! – Altoyyr

0

Вы должны пройти self4 в методе.

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