Я хотел использовать значения для self.value, которые я инициировал в функции take внутри функции func1. Однако при попытке сделать это я получил сообщение об ошибке.
код:
class all():
def __init__(self):
self.temp = self.value # Here I declare it first before the self.new but still get error. May I know why?
if:
**func**
else:
**func**
self.new = self.func1()
def func1(self):
**func**
return ["{}".format(self.temp)]
def take(value):
#In this example, the value already contained some values. and already been called. but in another program not in the same program.
self.value = value
Ошибка:
AttributeError: "all" object has no attribute "value"
Вероятно, вам не стоит называть свой класс all, поскольку это имя встроенной функции.
Но я уже позвонил дублю. Он все еще дает мне ту же ошибку






причина возникновения этой ошибки, вы не определили значение в методе конструктора (в этом).
def __init__(self):
self.value = 20(example purpose)
Прошу прощения за то, что сбил с толку, но я уже определил значение раньше, вызвав его в другой программе. Он уже сохранен со значениями.
Я знаю, но он не объявляется в конструкторе, так что причина, по которой вы получили ошибку.
Но я также попытался поместить его в в этом, например self.value = self.temp, и внутри функции take: self.temp = value. По-прежнему появляется та же ошибка.
вам нужно получить доступ к self.temp = self.value вместо self.temp = value.
Итак, вы имеете в виду, что внутри в этом я должен сначала поставить self.temp = self.value. тогда в func1 возвращается ["{}". format (self.temp)]? Это все еще та же ошибка. на этот раз он говорит, что нет значения (self.value) для строки внутри в этом
вам нужно объявить self.value в методе init, поскольку я дал вам ответ на ваш вопрос. если вы не объявите переменную, вы получите сообщение об ошибке.
Сэр, я обновил свой пост, не могли бы вы проверить. Я следую вашим инструкциям, чтобы объявить self.value в методе init, но все равно получаю ту же ошибку
вы не сделали объявление self.value в методе инициализации, любезно добавьте код в метод инициализации, например, в этом примере self.value = 20 #.
Сэр, если можно, скажите, в какую строку мне добавить?
ваш окончательный код может быть примерно таким. class all: def __init __ (self): self.value = 20 # пример цели self.temp = self.value self.func1 () def func1 (self): self.take (self.value) return ["{}". формат (self.value)] def take (self, value): self.value = value all = all () Составьте код.
Я попробовал другой метод, и он работает, я просто перемещаю "self.new = self.func1 ()" в функцию take после self.value = value.
Вы должны вызов
take, если хотите, чтобыself.valueбыл создан ...