关于python:什么是“实例方法”?

What is an “instance method”?

从http:/ / / / / datamodel.html docs.python.org 3.3参考

Instance methods

An instance method object combines a class, a class instance and any
callable object (normally a user-de?ned function).

如果它是一个定义,你能解释一下是什么算法?

如果它不是一个定义,什么是"国家法"的定义?

是"国家法"的概念,相同的A方法A类?

因为有人带上绑定静态方法和类方法,法与宗教法,让我澄清:i。a method of a class可以在普通法中,A类的方法,或一个静态方法。i a方法。A类或类的实例的访问通过它可以绑定或功能。我从来没有听说过"实例法"。我不知道它甚至后看的比,如果它是确定的和不相关的一类方法,普通法,或一个静态方法,或结合的方法或函数。我希望你明白我的混乱。

谢谢。


1
2
3
4
5
6
7
>>> class Foo:
...     def im_a_method(self):
...         pass
...
>>> x = Foo()
>>> x.im_a_method
<bound method Foo.im_a_method of <__main__.Foo object at 0x7f4f1993dd30>>

塔达!这是一个实例方法对象。它是在调用对象之前,当您检索对象的方法时得到的。


什么是实例方法?

实例方法是绑定到类实例的函数。类的实例作为第一个参数隐式传递给实例方法。它本质上属于那个特定的实例。实例方法是人们使用的"普通"方法类型。这与分别使用staticmethodclassmethod创建的静态方法或类方法相反。

下面是一个实例方法的示例:

1
2
3
4
5
6
>>> class Class:
...     def method(self):
...        pass

>>> Class.method
<bound method Class.method of <Class object at 0x7f12781c5b70>>

就这么简单。


你的困惑来自于这个定义到底是关于什么的。"实例方法"一词实际上用于描述概念(一种在实例上工作的方法——通过与类方法或静态方法的对立)及其技术实现。您引用的定义是关于技术实现的。

如果您想了解这个定义的上下文,可以在python wiki中阅读这篇文章,它解释了python如何在运行时将函数转换为方法。