Мой код: < /p>
Код: Выделить всё
def func(*x):
print('func:', x)
class ABC:
def __init__(self, f):
self.f1 = f
def f2(*x):
print('f2:', x)
< /code>
Некоторые тесты: < /p>
>>> a = ABC(func)
>>> a.f1(10)
func: (10,)
>>> a.f2(10)
f2: (, 10)
>>> a.f3 = func
>>> a.f3(10)
func: (10,)
>>> a.f1
>>> a.f2
>>> a.f3
< /code>
func
- нормальная функция, и я делаю это методом f1 класса.
получает экземпляр класса в качестве первого аргумента, но F1 и f3 не являются, даже если все функции называются методами класса. Если я называю нормальную функцию в качестве метода класса, Python не производит из нее связанный метод. Экземпляр класса передал ему, даже когда вы называете метод класса? И как Python узнает, что я называю внешней функции как метод, чтобы он не должен был передать экземпляру?
Подробнее здесь:
https://stackoverflow.com/questions/135 ... of-a-class