Я работаю в среде динамического программирования, где мне может понадобиться определить (или переопределить) функцию класса. Поэтому считаю, что это, например:Назначение функции Python за пределами определения класса вызывает исключение аргумента
def func(self):
print("hello2 \n")
class ManClass:
def __init__(self):
pass
def func1(self):
print("hello1\n")
a = ManClass()
a.func1()
hello1
a.func2 = func
>>> a.func2()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: func() takes exactly 1 argument (0 given)
Если func2() была определена внутри класса - a.func2() была бы истолковано как ManClass.func2 (а) - но теперь, когда я назначаю его снаружи, это, кажется, ждет аргумента. Как это исправить, но что более важно, почему это различие в том, как эти два определения взаимосвязаны?
О, хватит, ты прав. Атрибуты/функции класса и экземпляра «разные». Я должен был знать, что я делаю неправильно. Большое спасибо ! – user1922297