1

私は次のコードで混乱しています:

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

xコード内のこれら2つの意味がわかりませんself.x = x

4

4 に答える 4

11

self.xPointクラスの属性です。したがって、pがPointクラスのインスタンスである場合、p.x上記のようになりself.xます(selfは定義しているクラスへの参照です)。2つ目xは、初期化時に渡されるパラメーターdef __init__(self, x=0, y=0):です。何も渡さない場合のデフォルトはゼロであることに注意してください。

于 2012-07-15T10:27:25.880 に答える
7

1つ目xはの属性でselfあり、2つ目は2番目の引数としてメソッドに入ります。

あなたはそれを次のように書くことができます:

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あり、2番目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、salary = -69

于 2015-01-17T22:17:14.443 に答える