今日の暫定コンテンツの概要、およびいくつかは、最初はそれチートシートを作るための適切な場所ではないかもしれません。
組み込み関数のクラス(自分の書き換えの継承されたオブジェクト)
組み込み関数 | 実行タイミング | 注意点 | ケースを呼び出し |
---|---|---|---|
__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的子类 |
越来越感觉时间不够用了,要加油呀!
一寸光阴一寸金,寸金难买寸光阴。