Python 如何使用dict调用文件并将其传递给类对象?
我需要调用类“Configurator”的一个对象,其中包含大量dict条目。调用来自命令行。所以我希望能像下面这样做。但它似乎不起作用。 设计中有重大错误吗 第一个文件: 发起者.pyPython 如何使用dict调用文件并将其传递给类对象?,python,python-3.x,Python,Python 3.x,我需要调用类“Configurator”的一个对象,其中包含大量dict条目。调用来自命令行。所以我希望能像下面这样做。但它似乎不起作用。 设计中有重大错误吗 第一个文件: 发起者.py from configurator import Configurator def program1(**kwargs): sampleInstance = Configurator(kwargs) if __name__ == '__main__': kwargs = dict([arg.
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)
第二个文件:
配置程序.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
尝试:
使用Configurator**kwargs。对program1的调用是否应使用**?是。您可以将多个命名参数传递给program1。就像这里的python。\initiator.py myValue1=Hello,myValue2=World myValue1和myValue2是program1的两个命名参数。嗯,我的意思是:program1kwargsoh现在我得到了。。就连我也错过了**。更新了答案。谢谢
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)