クラスメソッドLOGIN

クラスメソッド

1. クラス固有のメソッド

クラスが作成されると、いくつかのメソッド、主に次のメソッドが含まれます:

クラスの独自メソッド :

##__init__ __del__ を呼び出します。 # を使用します。 ##__repr__ 印刷、変換__setitem__ インデックスに従って値を割り当てる__getitem__ インデックスに従って値を取得します__len__ 長さを取得します__cmp__ 比較操作関数呼び出し##__add__ 加算操作##__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)

結果ランニング:## ##########次のセクション

コースウェア
    なし
#メソッド 説明
コンストラクター、オブジェクト生成時に
デストラクター、オブジェクトを解放するときに
#__call__
#__sub__ 減算演算
__mul__ 乗算演算