python并在方法中使用'self'

Bla*_*man 6 python self

根据我的阅读/理解,'self'参数与'this'类似.

真的吗?

如果它是可选的,如果自己没有被传入方法,你会怎么做?

Mat*_*hen 5

是的,它以类似的方式使用.请注意,它是一个位置参数,您可以根据需要调用它; 然而,有一个强烈的惯例称之为self(不是this或其他任何东西).对于可用的实例方法,必须有一些位置参数; 它不是可选的.


Wol*_*lph 0

在类中,需要一个self变量(或对于类方法)。cls不过,你想怎么称呼它是你的决定。如果您愿意,可以改为调用它this

Aclassmethod是一种获取class作为第一个参数而不是实例的方法。无需传递实例即可调用它。即你可以这样classmethod做:

SomeObject.some_class_method()
Run Code Online (Sandbox Code Playgroud)

而正常的方法需要你做

SomeObject().some_normal_method()
or
SomeObject.some_normal_method(instance)
Run Code Online (Sandbox Code Playgroud)

  • 不,在Python中[静态方法](http://docs.python.org/library/functions.html#staticmethod)是不同的。 (5认同)