#メソッド | 説明 |
##__init__ コンストラクター、オブジェクト生成時に | |
__del__ を呼び出します。 デストラクター、オブジェクトを解放するときに | | # を使用します。 ##__repr__
印刷、変換 | | __setitem__
インデックスに従って値を割り当てる | | __getitem__
インデックスに従って値を取得します | | __len__
長さを取得します | | __cmp__
比較操作 | #__call__ |
関数呼び出し | ##__add__ | 加算操作
#__sub__ | 減算演算 |
__mul__ | 乗算演算 |
##__div__ | 除算演算 |
__mod__ | 剰余演算 |
__pow__ | Power |
# もちろん、クラスに関する関連情報を取得する必要がある場合もあります。次のメソッドを使用できます:
type(obj): オブジェクトの対応する型を取得します;
isinstance(obj, type ): オブジェクトが指定された型のインスタンスであるかどうかを判断します;
hasattr(obj, attr): オブジェクトが指定された属性/メソッドを持つかどうかを判断します;
getattr (obj, attr[,default] ) 属性/メソッドの値を取得します。対応する属性がない場合は、デフォルト値が返されます (デフォルトが設定されている場合)。それ以外の場合は、AttributeError 例外がスローされます。
setattr(obj, attr, value): obj.attr=value と同様に属性/メソッドの値を設定します;
dir(obj): すべての属性とメソッドのリストを取得できます対応するオブジェクトの名前:
2. メソッドのアクセス制御
実際、メソッドをクラスの属性とみなすこともできます。属性と同じであり、実際のプライベート メソッドはありません。すべては、プログラマーが意識的に Python プログラミング標準に従うかどうかにかかっています。
例は次のとおりです。特定のルールは属性と同じです、
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class User(object):
def upgrade(self):
pass
def _buy_equipment(self):
pass
def __pk(self):
pass
3。メソッド デコレータ
@classmethod はクラスを使用します。オブジェクトではなく、Name クラス呼び出しを直接呼び出す場合
@property プロパティにアクセスするのと同じようにメソッドを呼び出すことができます
具体的な使用方法については例を参照してください:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
lv = 5
def __init__(self, name, age, account):
self.name = name
self._age = age
self.__account = account
def get_account(self):
return self.__account
@classmethod
def get_name(cls):
return cls.lv
@property
def get_age(self):
return self._age
if __name__ == '__main__':
userInfo = UserInfo('两点水', 23, 347073565);
# 打印所有属性
print(dir(userInfo))
# 打印构造函数中的属性
print(userInfo.__dict__)
# 直接使用类名类调用,而不是某个对象
print(UserInfo.lv)
# 像访问属性一样调用方法(注意看get_age是没有括号的)
print(userInfo.get_age)
結果ランニング:## ##########次のセクション