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)に変更しても誤報は発生しません