gpt4 book ai didi

python - 使用 *args 而不将参数放入元组中?

转载 作者:行者123 更新时间:2023-11-30 23:37:37 25 4
gpt4 key购买 nike

这是我的代码:

def main(*args):
# The following code will look for arguments and record their start and
# end positions.
arg = False
arg_invalid = False
arg_start = -1
arg_end = -1
i = 1

print("main args = " + str(args))

...删除不相关的代码...

if __name__ == "__main__":
print("sys args = " + str(sys.argv))
print("tuple'd args = " + str(tuple(sys.argv)))
main(sys.argv)

输出:

$ ./gmanager.py foo bar 128
sys args = ['./gmanager.py', 'foo', 'bar', '128']
tuple'd args = ('./gmanager.py', 'foo', 'bar', '128')
main args = (['./gmanager.py', 'foo', 'bar', '128'],)

如您所见,在调用 main() 后,main() 将其参数放入元组中。我不希望这样,因为它会导致复杂的参数/字符串引用(arg[x][y][z])。

有没有办法在我的 main() 函数中接受参数作为其先前状态,或者我可以从参数外部删除元组吗?

最佳答案

直接传递列表:

def main(args):
...

main(sys.argv)

或使用*执行参数解包:

def main(*args):
...

main(*sys.argv)

后者对于测试很有用,因为您可以编写例如:

main('foo', 'arg1', 'arg2')

模拟命令行参数。

关于python - 使用 *args 而不将参数放入元组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com