我对下面的代码感到困惑:
class Point():
def __init__(self, x=0, y=0):
self.x = x
self.y = y
我不明白x
代码中的这两个是什么self.x = x
意思。
self.x
是 Point 类的一个属性。因此,如果 p 是 Point 类的实例,那么p.x
就是self.x
您在上面看到的(self 是对您正在定义的类的引用)。第二个x
是在初始化时传递的参数def __init__(self, x=0, y=0):
。请注意,如果您不传递任何内容,它默认为零。
第一个x
是 的属性self
,而第二个作为第二个参数进入方法。
你可以把它写成:
class Point():
def __init__(self, new_x=0, new_y=0):
self.x = new_x
self.y = new_y
看看哪个属于哪个。
首先阅读这个问答:自我的目的是什么?. 对于您的问题,第一个self.x
是的属性,self
第二个x
是您在构造函数中获得的参数Point
class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary # self ? ? ?
def displayEmployee(self):
salary = -69
print self.name, self.salary,salary # self ? ? ?
跑:
emp1 = Employee("nick", 2000)
emp1.displayEmployee() # self ! ! !
输出:
尼克 2000 -69
“自我”解释!: self.salary = 2000 , 工资 = -69