繁体   English   中英

如何传递 argparse 参数以用作 kwargs?

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

我不明白。 我怎么能够

  1. args列表中删除值message_type
  2. 传递值就像我会直接输入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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM