[英]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.