[英]How to pass on argparse argument to function as 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)
我不明白。 我怎么能夠
args
列表中刪除值message_type
M(value=5, message='test', extra="blah", param="whatever")
。您需要傳入vars(args)
的結果:
M(**vars(args))
vars()
函數將 Namespace 實例的命名空間(其__dict__
屬性)作為字典返回。
在M.__init__()
,只需忽略message_type
鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.