提问人:Dr. Joe 提问时间:2/16/2020 最后编辑:eyllanescDr. Joe 更新时间:2/16/2020 访问量:45
如何使用 dict 调用文件并将其传递给类对象?
how to call file with a dict and pass it to class object?
问:
我需要调用一个具有多个字典条目的对象(类为“Configurator”)。调用来自命令行。所以我希望像下面这样做。但这似乎行不通。 设计上是否存在重大错误?
第一个文件:
initiator.py
from configurator import Configurator
def program1(**kwargs):
sampleInstance = Configurator(kwargs)
if __name__ == '__main__':
kwargs = dict([arg.split('=', maxsplit=1) for arg in sys.argv[1:]])
program1(kwargs)
第二个文件:
configurator.py
class Configurator:
def __init__(self, **kwargs):
print(kwargs)
输入:
python .\initiator.py myValue1="Hello", myValue2="World"
输出:
program1(kwargs)
TypeError: program1() takes 0 positional arguments but 1 was given
答:
1赞
Pankaj_Dwivedi
2/16/2020
#1
尝试:
from configurator import Configurator
import sys
def program1(**kwargs):
sampleInstance = Configurator(kwargs)
if __name__ == '__main__':
kwargs = dict([arg.split('=', maxsplit=1) for arg in sys.argv[1:]])
program1(**kwargs)
评论
0赞
Ed Ward
2/16/2020
调用是否应该使用?program1
**
0赞
Pankaj_Dwivedi
2/16/2020
是的。您可以将多个命名参数传递给 Program1。像这里一样 python .\initiator.py myValue1=“Hello”, myValue2=“World” myValue1 和 myValue2 是 program1 的两个命名参数。
1赞
Ed Ward
2/16/2020
嗯,我的意思是这句话:program1(kwargs)
0赞
Pankaj_Dwivedi
2/16/2020
哦,现在我得到了..甚至我也错过了**。更新了答案。谢谢
评论
Configurator(**kwargs)