Каждый связанный метод имеет атрибут __self__
, который является экземпляром
, к которому привязан этот метод, или
blockquote>None
(скопировано из здесь )
Подробнее о связанных методах (из Модель данных ):
Если вы обращаетесь к методу ( функция, определенная в пространстве имен классов) через экземпляр, вы получаете специальный объект: объект метода bound (также называемый методом экземпляра). ... Связанные методы имеют два специальных атрибута для чтения:
blockquote>m.__self__
- это объект, на котором работает этот метод ...Таким образом,
f.__self__
предоставит вам экземпляр класса:print(f.__self__) # <__main__.Foo object at 0x7f766efeee48>
И
type(f.__self__)
илиf.__self__.__class__
доставят вам объект типа:print(type(f.__self__)) #
Вы использовали бы только
__class__
для классов старого стиля .