Форум сайта python.su
class class1(object): def methode1(self, num): self.num = num check_methode = class1.methode1(num = 5) print(check_methode)
Отредактировано mansur (Июль 16, 2021 12:37:18)
Офлайн
mansur
Сначала надо создать объект класса.
Офлайн
FishHookcheck_methode = class1.methode1(num = 5) <—-объект класса есть
mansurСначала надо создать объект класса.
Офлайн
Ты вызываешь метод, которому требуется экземпляр класса, но сам экземпляр еще не создал
class Class1(object): """docstring""" def __init__(self, num): """конструктор класса, он же метод инициализации""" self.num = num def get_num(self): return self.num def method1(num): return "Я твой метод, которому нужен экземпляр класса" @staticmethod def static_method(): print("Я твой статический метод") @classmethod def class_method(cls): print("Я твой классовый метод") # Создаем объект и работаем с объектом obj1 = Class1(num = 5) # Вызвать можно двумя способами print(obj1.num) print(obj1.get_num()) # Пример метода, которому нужен объект print(obj1.method1()) # Вызываем без создания объекта класса Class1.static_method() Class1.class_method()
Отредактировано Ocean (Июль 16, 2021 12:53:04)
Офлайн
mansur
num - это динамический атрибут.
class1.methode1 - вызов метода.
Объект класса не создан. Какой свой код ты считаешь созданием объекта класса?
Очень простой способ проверить есть экземпляр класса или нет.
print(type(имя переменной, которую ты считаешь объектом класса))
Для моего примера кода: сделав print(type(obj1)), ты увидишь <class ‘__main__.Class1’>
Отредактировано Ocean (Июль 16, 2021 12:49:16)
Офлайн
вот ошибка которую выводит ваш код:
Traceback (most recent call last):
File “py.py”, line 4, in <module>
check_methode = class1.methode1(num = 5)
TypeError: methode1() missing 1 required positional argument: ‘self’
а я пришёл сюда с той же самой ошибкой!
Отредактировано mansur (Июль 16, 2021 12:59:40)
Офлайн
mansur
посмотри внимательно у меня в коде:
1) нет methode1
2) Class1 c заглавной
3) отсутствует переменная check_methode
4) в 4 строке, на которую указывает ошибка у меня… комментарий)
Проверь что именно запускаешь) Ты сейчас запускаешь свой старый код
Отредактировано Ocean (Июль 16, 2021 13:34:32)
Офлайн
мне нужно вывести значение переменной не из метода __init__ , а из другого метода
check_methode = class1.methode1(num = 5) <– экземпляр класса который сразу получает доступ к методу и записывает в переменную num значение 5
ошибка: methode1() missing 1 required positional argument: ‘self’ (если я правильно понимаю то записывать значение в self не нужно)
Отредактировано mansur (Июль 16, 2021 13:50:38)
Офлайн
mansur
нет, ты неверно понимаешь.
Я тебе выше привела пример, на основании которого ты мог разобраться и исправить свои ошибки
Чтобы работать с экземпляром класса его сначала нужно создать.
В твоей строке check_methode = class1.methode1(num = 5) не создается экземпляр класса. Когда ты это поймешь, то проблема исчезнет.
class Class1(object): def method1(self, num): return num obj1 = Class1() print(type(obj1)) print(obj1.method1(num = 5))
Офлайн
спасибо за помощь
Отредактировано mansur (Июль 16, 2021 17:24:03)
Офлайн