объекты методов против объектов функций, экземпляры классов Python против классов
Я пытаюсь проверить разницу между атрибутами экземпляра и атрибутами класса, как описано в учебном выпуске Python, выпуск 2.7.3 от 01 ноября 2012 г., глава 9: Классы, последняя строка (источник):
Допустимые имена методов объекта экземпляра зависят от его класса. По определению, все атрибуты класса, которые являются объектами функции, определяют соответствующие методы его экземпляров. Таким образом, в нашем примере x.f является допустимой ссылкой на метод, поскольку MyClass.f является функцией, а x.i - нет, поскольку MyClass.i - нет.Но x.f - это не то же самое, что MyClass.f - это объект метода, а не объект функции.
У меня есть это:
class MyClass:
"""A simple example class"""
i = 12345
def f():
return 'hello world'
Тогда я делаю это:
>>> x = MyClass()
>>> x.f
>>> MyClass.f
>>> type(MyClass.f)
>>> type(x.f)
Обратите внимание, что тип обоихx.f
а такжеMyClass.f
это метод. Различий в типах нет, но в учебнике сказано иначе. Может кто-нибудь уточнить, пожалуйста?