'' ' 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]