作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码:
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/
如何在每个新行创建一个新数组/元组? 就像我有这个循环来读取文件: for line in csv.reader(f, delimiter='\t', lineterminator='\t\t', d
我正在尝试将值写入(我可以很好地读取)MSSQL 实例。我的代码类似于: import pypyodbc lst = ['val1', 'val2', 'val3'] connection = pyp
我是一名优秀的程序员,十分优秀!