我对以下代码感到困惑:
class Point():
def __init__(self, x=0, y=0):
self.x = x
self.y = y
我不明白代码x
中的那两个self.x = x
是什么意思。
答案 0 :(得分:9)
self.x
是Point类的一个属性。因此,如果p是Point类的一个实例,那么p.x
就是您在上面看到的self.x
(self是对您定义的类的引用)。第二个x
是在初始时def __init__(self, x=0, y=0):
传递的参数。请注意,如果您未传递任何内容,则默认为零。
答案 1 :(得分:7)
第一个x
是self
的属性,而第二个是方法作为第二个参数。
你可以把它写成:
class Point():
def __init__(self, new_x=0, new_y=0):
self.x = new_x
self.y = new_y
并查看哪个属于哪个。
答案 2 :(得分:2)
首先阅读此问题并回答:What is the purpose of self?。对于您的问题,第一个self.x
是self
的属性,第二个x
是您在Point
的构造函数中获得的参数
答案 3 :(得分:-2)
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 ! ! !
输出:
nick 2000 -69
“自我”解释了! :self.salary = 2000,salary = -69