Python入門から精pao通lu-OOPオブジェクト向けプログラミング
2287 ワード
コア特性パッケージ 継承 マルチステート:djangoリンクredisなど、異なるサブクラスの複数の実装パッケージ接続を親インタフェースで生成し、このオブジェクト を全サイクルで使用するredisオブジェクトを生成する.
インスタンス化プロセス
クラス+()==オブジェクト
クラスの構成属性:共有属性+プライベート属性 メソッド:クラスのメモリに保存する 公有変数/クラス変数/静的フィールド: 特殊方法 プライベート属性
公有変数/クラス変数
メソッドと同じレベルでself修飾がない、メモリに共通に存在する==クラス定義も一緒に定義され、インスタンス化まで待つことなくインスタンス化後、インスタンスがobjを通過する.class_attr方式でクラス変数を変更すると、インスタンスは独自の属性を生成し、インスタンスはクラス変数に変更されません.
クラス変数を変更するには、オブジェクトが1つのプロパティを付与すると再作成されるため、クラス名でのみ呼び出すことができます.オブジェクトは1つの役割ドメインに相当します.
特殊な方法 を削除するのではない.
新式クラス&クラシッククラス
新しいクラス定義クラス 親メソッド を継承マルチ継承順序:左、右、上==広さ優先 クラシッククラス定義クラス 親メソッド を継承マルチ継承順序(Python 3.+では新式クラスと一致):左,上,右=深さ優先
インスタンス化プロセス
クラス+()==オブジェクト
クラスの構成
self.__private
:オブジェクトのみが自分でアクセス/対外アクセスインタフェース/オブジェクトを提供できます.クラス名_プライベート変数@property
の騒乱操作:処理値を取得できます.@property
def usd_percent_change_7d(self) -> float:
num = self.data['quotes']['USD']['percent_change_7d']
if num is None:
return 0
return float(num)
公有変数/クラス変数
メソッドと同じレベルでself修飾がない、メモリに共通に存在する==クラス定義も一緒に定義され、インスタンス化まで待つことなくインスタンス化後、インスタンスがobjを通過する.class_attr方式でクラス変数を変更すると、インスタンスは独自の属性を生成し、インスタンスはクラス変数に変更されません.
クラス変数を変更するには、オブジェクトが1つのプロパティを付与すると再作成されるため、クラス名でのみ呼び出すことができます.オブジェクトは1つの役割ドメインに相当します.
class X:
hi = []
a = X()
b = X()
a.foo = 1 # a
print(a.foo)
print(b.foo) # b foo
特殊な方法
__del__
:参照がクリアされ、自動的に実行され、プログラムが実行され、この関数が実行され、pythonでdelキーが削除されるときに削除されるのは変数名であり、メモリの変数が指すアドレスに格納されているデータ新式クラス&クラシッククラス
新しいクラス