簡體   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