Получены ошибки при использовании self в функции, у которой есть другое от другого self

Я хотел использовать значения для 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"

Вы должны вызовtake, если хотите, чтобы self.value был создан ...

Aran-Fey 29.10.2018 10:01

Вероятно, вам не стоит называть свой класс all, поскольку это имя встроенной функции.

khelwood 29.10.2018 10:02

Но я уже позвонил дублю. Он все еще дает мне ту же ошибку

Beginner 29.10.2018 10:08
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
30
1

Ответы 1

причина возникновения этой ошибки, вы не определили значение в методе конструктора (в этом).

    def __init__(self):
        self.value = 20(example purpose)

Прошу прощения за то, что сбил с толку, но я уже определил значение раньше, вызвав его в другой программе. Он уже сохранен со значениями.

Beginner 29.10.2018 10:10

Я знаю, но он не объявляется в конструкторе, так что причина, по которой вы получили ошибку.

Ankit Kumar Rathod 29.10.2018 10:21

Но я также попытался поместить его в в этом, например self.value = self.temp, и внутри функции take: self.temp = value. По-прежнему появляется та же ошибка.

Beginner 29.10.2018 10:24

вам нужно получить доступ к self.temp = self.value вместо self.temp = value.

Ankit Kumar Rathod 29.10.2018 10:27

Итак, вы имеете в виду, что внутри в этом я должен сначала поставить self.temp = self.value. тогда в func1 возвращается ["{}". format (self.temp)]? Это все еще та же ошибка. на этот раз он говорит, что нет значения (self.value) для строки внутри в этом

Beginner 29.10.2018 10:35

вам нужно объявить self.value в методе init, поскольку я дал вам ответ на ваш вопрос. если вы не объявите переменную, вы получите сообщение об ошибке.

Ankit Kumar Rathod 29.10.2018 10:54

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

Beginner 29.10.2018 10:59

вы не сделали объявление self.value в методе инициализации, любезно добавьте код в метод инициализации, например, в этом примере self.value = 20 #.

Ankit Kumar Rathod 29.10.2018 11:22

Сэр, если можно, скажите, в какую строку мне добавить?

Beginner 29.10.2018 11:30

ваш окончательный код может быть примерно таким. 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 () Составьте код.

Ankit Kumar Rathod 29.10.2018 11:32

Я попробовал другой метод, и он работает, я просто перемещаю "self.new = self.func1 ()" в функцию take после self.value = value.

Beginner 29.10.2018 11:40

Другие вопросы по теме