1

我对下面的代码感到困惑:

class Point():
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

我不明白x代码中的这两个是什么self.x = x意思。

4

4 回答 4

11

self.x是 Point 类的一个属性。因此,如果 p 是 Point 类的实例,那么p.x就是self.x您在上面看到的(self 是对您正在定义的类的引用)。第二个x是在初始化时传递的参数def __init__(self, x=0, y=0):。请注意,如果您不传递任何内容,它默认为零。

于 2012-07-15T10:27:25.880 回答
7

第一个x是 的属性self,而第二个作为第二个参数进入方法。

你可以把它写成:

class Point():
    def __init__(self, new_x=0, new_y=0):
        self.x = new_x
        self.y = new_y

看看哪个属于哪个。

于 2012-07-15T10:26:43.167 回答
2

首先阅读这个问答:自我的目的是什么?. 对于您的问题,第一个self.x是的属性,self第二个x是您在构造函数中获得的参数Point

于 2012-07-15T10:28:48.237 回答
-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 ! ! !

输出:

尼克 2000 -69

“自我”解释!: self.salary = 2000 , 工资 = -69

于 2015-01-17T22:17:14.443 回答