В Python, если я определяю метод внутри класса, я могу получить доступ к содержащему классу, используя __class__
:
>>> class A:
... def f(self):
... print(__class__)
...
>>> class B(A):
... pass
...
>>> B().f()
<class '__main__.A'>
Однако, если я определяю метод вне класса, а затем присоединяю его ккласс __class__
недоступен:
>>> class A:
... pass
...
>>> def f(self):
... print(__class__)
...
>>> A.f = f
>>> class B(A):
... pass
...
>>> B().f()
NameError: name '__class__' is not defined
В этом втором сценарии существует ли какой-либо способ доступа из f
к классу A
, к которому он присоединен?