python-オブジェクト指向B - 方法内蔵 - 組み込み関数 - 組み込みプロパティ(仕上げの一部のみ)

今日の暫定コンテンツの概要、およびいくつかは、最初はそれチートシートを作るための適切な場所ではないかもしれません。

組み込み関数のクラス(自分の書き換えの継承されたオブジェクト)

組み込み関数 実行タイミング 注意点 ケースを呼び出し
__init__ オブジェクトがインスタンス化されると (Noneを返し、その差を返しませんでした)の戻り値を書き込むことが許可されていない
サブクラスは上書きされます__init__()し、サブクラスでメソッドを__init__()祖先メソッド呼び出し__init__(メソッドsuper(当前类, self).__init__(参数)
stu = Student()
__new__ これは、インスタンス化されるクラスと呼ばれています stu = Studetn()
__call__ ときに呼び出し元のオブジェクト 親クラスを呼び出すことを忘れないでください stu(__call__方法的参数)
__str__ ときに文字列にオブジェクト 文字列型の戻り値(デフォルト値のタイプ+リターンアドレスは、意味を持たない)を返す必要があります print(stu)
__del__ オブジェクトが削除されるとき(手動またはプログラムが終了すると、ガベージコレクション) del stu
__getattr__ (方法の原理) プロパティにアクセスする際に使用します プロパティは、実行前に存在していない、そこにある__getattribute__方法でしょう最初の実行__getattribute__方法は、 stu.gaewfg
__setattr__ (方法の原理) で実行する場合。プロパティを変更/追加 stu.sex = 'male'
__delattr__ (方法の原理) 属性プロパティを削除し、実行・デル・オブジェクト 属性は、時に実行削除されます del stu.age
__getattribute__ プロパティにアクセスする際に使用します かかわらず、プロパティが実行する必要がないかどうかの、私は後にこの方法を書きました__getattr__需要自行调用 stu.age
__getitem__ ([]の原理) [プロパティ名]を使用して、プロパティへのアクセス stu[age]
__setitem__ ([]の原理) [属性名]で属性を編集または追加する場合= stu[age] = 18
__delitem__ ([]の原理) あなたは、[プロパティ名]でプロパティを削除する場合 del stu[age]
__gt__ __ge__ __eq__ __ne__ __lt__ __le__ 比較演算子(カスタムルールの比較) 対応する比較演算子を呼び出すとき 同じように__gt__ 和 __lt__、こののみを指定することができます stu1 > stu2
__iter__ _next__ イテレータプロトコル ときに反復されるオブジェクトの値 for i in stu: ...
__enter__ __exit__ コンテキスト管理 一度バックで with MyOpen(__enter__ 的参数) as m:

内蔵のプロパティクラス(直接呼び出すことができます)

プロパティ 効果 注意点 ケース
__dict__ 呼び出し側の独自の名前空間に戻りました stu.__dict__
__class__ 現在の呼び出し元のオブジェクトクラスを返します。
__slots__ 指定されたクラスオブジェクトは、メモリのオーバーヘッドを減らすことができ、すべての属性を持つことができます プロパティクラスオブジェクトであっても、ケースの使用など、死者を制限することになります__dict__不要となります __slots__ = ['name'] # 加了以后再添加属性就不行了,限制属性
类.mro() クラスのリストを取得するMROため、つまりクラスを探します この方法でのpython3を持っています
类.__name__ クラスのクラス名を返します。 class_name = stu.__class__

組み込み関連するオブジェクト指向の方法(Pythonインタプリタビルトイン方式)

機能 効果 注意点 ケース
hasattr() オブジェクトのプロパティがあるかどうかを確認 戻り値はTrue / Falseのです hasattr(p, 'age')
getattr() 被験体からの値をとります デフォルト値の3番目の位置の不在のためのデフォルト値 getattr(p, 'age', None)
setattr() オブジェクトを追加するには、プロパティを変更 setattr(p, 'name', 'jackson')
delattr() オブジェクトのプロパティを削除します。 delattr(p, 'school')
locals() 現在のネームスペース内のすべての名前を取得します。 直接修改无效 类的初始化函数初始化属性(__init__)
isinstance() 判断一个对象是不是某个类/某几个类的实例 第二参数可以传元组,返回值为 True/ False isinstance(obj1, (int, Student)) obj1是int 类型或者 Student 类型?
issubclass() 判断一个类是不是另一个类的子类 issubclass(type(obj), Animal) 对象obj 的类 是不是Animal的子类

越来越感觉时间不够用了,要加油呀!

一寸光阴一寸金,寸金难买寸光阴。

おすすめ

転載: www.cnblogs.com/suwanbin/p/11409974.html