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