それらのものの_inspect.getcallargsのpythoインタプリタパラメータ

'' ' 
2019年7月26日上で作成

@author:Tomcatは
' '' 

インポート点検
DEFのchack_admin(FUNC):
    DEFラッパー(* argsを、** kwargsからの):
        '' ' 
        inspect.getcallargsが辞書を返し、辞書機能は維持しますすべてのパラメータ
        inspect.getcallargs(FUNC [、*引数] [、** kwds]): kwds引数パラメータおよびパラメータ名FUNCに結合する;メソッドにバインドされた、最初のパラメータバインド(通常は戻り辞書、対応するパラメータ名とその値;対応するインスタンスに自己)''
        ' 
        fuc_argsの=のinspect.getcallargs(FUNC、引数*、** kwargsから)
        印刷( "のArg {}、{} keord、fuc_args {}" .format(引数、kwargsから、fuc_args))
        IF fuc_args.get( "ユーザ名")== "ADMIN":
            = FUNC(* argsを、再** kwargsから)
        他:
            昇給の例外( ')要素を追加したり削除したりする資格がない
        リターン・再
    warpperリターン 
    M。プッシュ(ユーザ名= "管理者"、項目= 902)
MyClassのクラス(オブジェクト):
    DEF __init __(自己):
        self.item = [90.89] 
    '' ' 
     ユーザ名=管理者ならば、修飾されていない要素を追加!
    ' '' 
    @chack_adminの
    DEFプッシュ(セルフ、ユーザ名、項目):
        セルフ。 item.append(項目)
    '' ' 
    ユーザ名=管理者場合は、要素を削除する資格がありません''' 
    @chack_adminの    
    DEFのPOP(セルフ、ユーザ名):
        self.item IF:
            リターンself.item.pop()
        他:
            昇給の例外( '項目番号の要素を')
__name__ == '__main__' IF:
    M = MyClassの()
    m.push( 'ADMIN'、10)
    m.pop(ユーザ名= '管理者')
    プリント(m.item)

 

引数(<__メイン__ 0x10c5b5240でMyClassのオブジェクト。>、 '管理者'、10)、keord {}、fuc_args { '自己':<。0x10c5b5240で__主__ MyClassのオブジェクト>、 'ユーザ名': '管理者'、 'アイテム':10 }

引数(<0x10c5b5240で__主__ MyClassのオブジェクト。>、)、keord { 'ユーザ名': '管理者'、 'アイテム':902}、fuc_args { '自己':<。0x10c5b5240で__主__ MyClassのオブジェクト>、 'ユーザ名': '管理者、 '項目':902}

引数(<0x10c5b5240で__主__ MyClassのオブジェクト。>、)、keord { 'ユーザ名': '管理'}、fuc_args { '自己':<。0x10c5b5240で__主__ MyClassのオブジェクト>、 'ユーザ名': '管理者'}

[90.89]、[10]

おすすめ

転載: www.cnblogs.com/tallme/p/11247899.html