クラスのメンバー
1. フィールド
1. 静的フィールド クラス自体を通じてアクセスされます 静的フィールドはクラスコードがロードされるときに作成され、新しいクラス名()を待つ必要はありません
2. アクセスされる通常のフィールドオブジェクトを通じて
2 .メソッド
すべてのメソッドはクラスに属します
1. 通常のメソッドは、最初にクラスのオブジェクトを作成し、次にオブジェクトを通じてそれを呼び出すことしかできません
def show(self): self はクラスオブジェクトです呼び出しメソッド
print(self .name)
を自動的に渡します。 2. 静的メソッド 静的メソッドの呼び出しは、クラス名.メソッド名 () を通じて呼び出され、メモリを節約します。メソッドはPythonの関数であり、パラメーターは自己の必要ではありません。 / プロパティ宣言 // メソッド宣言
DEF ALL_PAGE (SELF): DEF All_PAGE (SELF):
Return 100 Return 100
@all_page.setter All_page はデコレーター @property で定義された関数である必要があります def all_page(self,value): pass obj.all_page = 100 //メソッド以下のセッターデコレータを自動的に呼び出す@all_page.deleter
def all_page(self):
pass
del obj .all_page //削除デコレーターの下のメソッドを自動的に呼び出します
obj.all_page プロパティ呼び出し 同様のフィールド 同じメソッドを呼び出して関数の戻り値を直接取得します
obj.all_page() .
foo = プロパティ( func1, func2, func3) func1, func2, fun3 はすべて class クラス名.foo で定義されているメソッドです プログラムは func1 メソッドを実行し、func1 の戻り値を取得します
クラス名.foo = " newvalue" 実行func2 メソッド
__dict__ function:
(obj はオブジェクト) obj のメモリアドレスではなく、オブジェクトの文字列情報です。 __dict__ 任意のオブジェクトを入れる カプセル化されたデータを全てdict
に変換する (Pagerはクラスです) Pager.__dict__ 任意のクラスに含まれるメンバー情報をdict
に変換します __getitem__(self,item) __setitem(self,key,value) __delitem__( self,key) function :
obj = Foo()
。
isinstance ret=isinstance(obj,Foo) オブジェクト obj がクラス Foo または Foo の親クラスのオブジェクトであるかどうかを確認します
issubclass ret=issubclass(Foo,Bar)
super と Decorator の機能的な違い (forコード拡張子) 1. デコレーターを使用して、元々他の人が書いた関数実行プロセスに独自のコードを追加できますが、ソース コード ファイル内の関数
にデコレーター構文シュガーを追加する必要があります
2. super と を使用します。このメカニズムにより、元のコードをまったく変更せずに、他の人が最初に作成したクラスを継承するサブクラスを追加できます。
サブクラスのカスタム メソッドに、元の関数を追加します。コードの関数拡張を実現します
model = __import__(Path,fromlist=True) Pathは設定項目の文字列read
cls = getattr(model,ClassName) ClassNameは設定項目の文字列read
obj = cls ()
obj.f1()
文字列を介して Python クラスの特定の関数を動的に呼び出します。