pythonパッケージ

1844 ワード


パッヶージ
  • オブジェクト向けの最初のプログラミングは、属性と方法を抽象的なクラスにカプセル化する
  • である.
  • 外部はクラスを使用してオブジェクトを作成し、オブジェクトにメソッド
  • を呼び出す.
  • オブジェクトメソッドの詳細はクラスの内部にカプセル化する
  • .
  • オブジェクトの属性は、別のクラスによって作成するオブジェクト
  • であってもよい.
    練習:
    class Person:
    def __init__(self, name, weight):
    self.name = name
    self.weight = weight
     
    def __str__(self):
    return "      %s,    %.2f   " % (self.name, self.weight)
    def eat(self):
    print ( "%s    ,       " % self.name )
    self.weight += 1
    def run(self):
    print ( "%s    ,      " % self.name )
    self.weight -= 0.5
    xiaoming = Person ( "  ", 75.0 )
    xiaoming.run ()
    xiaoming.eat ()
    print(xiaoming)
    

     
    初期値のない属性を定義None
    属性を定義するには、初期値が分からない場合はNoneに設定できます.
    Noneキーワードは何でも表します
    空のオブジェクトを表し、メソッドとプロパティがなく、特殊な定数です.
    Noneを任意の変数に割り当てることができます
     
    プライベート属性とプライベートメソッド
    実際の開発では、オブジェクトのいくつかの属性と方法は、オブジェクトの内部でのみ使用され、外部でアクセスされたくない場合があります.
    ≪プライベート・プロパティ|Private Properties|ldap≫:オブジェクトが公開したくないプロパティ
    ≪プライベート・メソッド|Private Method|emdw≫:オブジェクトが公開したくないメソッド
     
    定義方法:
    属性またはメソッドを定義するには、属性名またはメソッド名に下線を2つ追加し、プライベート属性またはメソッドを定義します.
     :__age
     
    class Women:
    def __init__(self,name):
    self.name=name
    self.__age=18
     
    def secret(self):
    #         ,            
    print("%s      %d" %(self.name,self.__age))
     
    xiaomei=Women("  ")
    #print(xiaomei.__age) #     :AttributeError: 'Women' object has no attribute '__age'                
    xiaomei.secret()
    

     
    擬似プライベート属性と擬似プライベートメソッド
    Pythonでは、本当の意味のないプライベート
    属性とメソッドに名前を付けるとき、実際には名前に特殊な処理を行い、外部からアクセスできないようにします.
    処理方法:名前の前に_を付けるクラス名=>クラス名_名前
    上記のように赤色の誤報行を:print(xiaomei._Women__age)に変更しても誤報は発生しません