我为什么要使用" self"在一个功能?

时间:2015-07-05 07:38:51

标签: python methods

关于这段代码我有两个问题:

class Enemy
    def __init__ (self, x):
         self.energy=x

jason=Enemy(5)     
  1. 为什么在创建函数和实例变量时必须使用self?使用它的目的是什么?

  2. 当我们创建jason对象时,我们会为其分配5的生命,为Enemy(5)。但是,类名可以将变量放在里面吗?或者是__init__功能使它成为可能吗? (当我们宣布上课时,我会期待类似class Enemy (x)的内容)。

1 个答案:

答案 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__(),这是一种类方法,有助于了解newinit如何工作的问题 - {{3} }