python learning day 13---クラスとオブジェクト(一)

4425 ワード

クラスは、オブジェクトの青写真とテンプレート、オブジェクトのクラスのインスタンスです.各オブジェクトはユニークですが、オブジェクトは必ずクラスに属します.オブジェクトにはプロパティ(静的フィーチャー)と動作(ダイナミックフィーチャー)があり、同じプロパティと動作を持つオブジェクトのグループを抽出するとクラスが定義されます.
クラスの定義classによってクラスを定義し、クラス内で関数でクラスを定義する方法(メソッドはオブジェクトが許容できるメッセージ、呼び出し方法)であり、オブジェクトの動作(動的特徴)を記述することができる.
from math import sqrt


class Distance(object):

    def __init__(self,x,y):
         self.x=x
         self.y=y
    
    def distance_to(self,other):
        t=(self.x-other.x)**2+(self.y-other.y)**2
        print('diatance'+'=',sqrt(t))



def main():
    point_a=Distance(0,0)
    point_b=Distance(3,4)
    point_a.distance_to(point_b)


if __name__=='__main__':
    main()

説明:
  • 上記のセグメントでは、Distanceはクラス名であり、括弧ではこのクラスがそのクラスから継承されたことを示し、適切なクラスがなければobject
  • を用いる.
  • は、作成されたオブジェクトにいくつかの属性(静的特徴)を縛ることができる__init__メソッドを定義する.ここでx,yはオブジェクトが持つ属性である.
  • __init__の最初のパラメータは常にselfであることに注意してください.これは、作成されたオブジェクト自体に各属性をバインドすることを示しています.同理otherは、同一クラスの他のオブジェクト
  • を表す.
  • 本オブジェクトにx,y属性がある場合、クラス内でこれらの属性にアクセスするにはクラスの外に行く必要はなく、self.
  • にアクセスできる.
  • は、distance_toメソッドを作成し、メソッドのネーミングは、「アルパカネーミング」または小文字に下線を付けて接続することもできます.
  • は、 +()によってオブジェクトを作成します.そしてpoint_aはこのオブジェクトを指し、括弧内、もし_init__バインドするプロパティがある場合は、オブジェクトの作成時にプロパティが与えられます.
  • がメソッドを呼び出す場合(オブジェクトにdistace_toを渡すメッセージ)、関数に伝達するパラメータと同じであるが、第1のパラメータself
  • を伝達しない.
  • 補足:プライベートメソッドは、定義時に名前の先頭に2つの連続した下線を付けることによって人を取りますが、文法的にプライベート属性
  • を厳格に保証するわけではありません.