Вызов функции в качестве метода классаPython

Программы на Python
Anonymous
 Вызов функции в качестве метода класса

Сообщение Anonymous »

Мой код: < /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

Вернуться в «Python»