19
我有一個類定義如下如何傳遞argparse參數來作爲kwargs函數?
class M(object):
def __init__(self, **kwargs):
...do_something
和我的argparse.parse_args()
的結果,例如:
> args = parse_args()
> print args
Namespace(value=5, message='test', message_type='email', extra="blah", param="whatever")
我想通過在該命名空間中的值(除了message_type
)來創建類M
的一個實例。我曾嘗試
M(args)
,但得到了一個錯誤
TypeError: __init__() takes exactly 1 argument (2 given)
,我不明白。我怎樣才能
- 從列表中刪除值
message_type
在args
- 通上的值,如果我會直接鍵入
M(value=5, message='test', extra="blah", param="whatever")
。
那正是我需要的。謝謝。除了刪除某個鍵。我需要刪除它,因爲這個問題的範圍之外的原因,我不能忽略它。 – Alex 2013-03-04 16:22:03
我建議在vars(args).items(),如果k!=「message_type」)''做'arg_dict = dict((k,v),避免可能的未定義行爲與'vars'。 – Alex 2013-03-04 16:28:31
@Alex:'vars'有什麼未定義的行爲?你可以用這種方式過濾掉'message_type'鍵,但是爲了它自己的緣故,不是因爲'vars()'可能有未定義的行爲(它沒有)。 – 2013-03-04 16:30:17