关于这段代码我有两个问题:
class Enemy
def __init__ (self, x):
self.energy=x
jason=Enemy(5)
为什么在创建函数和实例变量时必须使用self
?使用它的目的是什么?
当我们创建jason
对象时,我们会为其分配5
的生命,为Enemy(5)
。但是,类名可以将变量放在里面吗?或者是__init__
功能使它成为可能吗? (当我们宣布上课时,我会期待类似class Enemy (x)
的内容)。
答案 0 :(得分:0)
在python中,对于类方法,第一个参数(通常是人名self
)引用用于调用函数的类的实例(对象),它不必被命名为self ,但这就是惯例。
示例 -
>>> class CA:
... def __init__(someotherself, i):
... print(someotherself)
... print(i)
... someotherself.i = i
...
>>> CA(1)
<__main__.CA object at 0x00514A90>
1
<__main__.CA object at 0x00514A90>
当你做某事 -
self.energy=x
您将energy
内的self
变量(表示您当前的对象)设置为x。
当你这样做时 -
jason=Enemy(5)
Python内部调用Enemy的__init__()
方法,x的值为5(并且self为当前对象)。在__init__()
方法创建对象后调用__new__()
,这是一种类方法,有助于了解new
和init
如何工作的问题 - {{3} }