我有以下文件:up.py
在此文件中:
def main(a_param, b_param, c_param):
// Code
if __name__ == '__main__':
exit(main())
我想通过CMD运行这个python文件,所以我写了这一行:
python up.py False True False
但我得到了下一个错误:
TypeError: main() takes exactly 3 arguments (0 given)
答案 0 :(得分:1)
这与CMD无关。你的main
函数需要三个参数,但你没有传递任何参数;您可以直接在if __name__ == '__main__'
块中使用main()
来调用它。
从该块中获取参数(例如来自sys.argv
)并将它们传递给main,或者从函数签名中删除参数并将它们放在main中。
答案 1 :(得分:0)
您尝试在没有参数事件的情况下调用main
函数,但它需要3(a_param
,b_param
和c_param
)。
命令行参数存储在sys.argv
中。要使用前3个命令行参数调用main
函数,可以这样:
import sys
if __name__ == '__main__':
main(*sys.argv[1:4])
为了澄清,*
解包参数列表,因此main(*sys.argv[1:4])
等同于main(sys.argv[1], sys.argv[2], sys.argv[3])
答案 2 :(得分:-2)
此代码适用于我
def main(a_param, b_param, c_param):
# Code
if __name__ == '__main__':
exit(main())
然后:
$ python up.py False True False