我在这里很困惑。我正在尝试将可选的字符串参数传递给我的函数,但是一旦添加了参数,它就会将字符串转换为元组?我怎么能阻止它这样做或转换回来?
我有这个:
def fen2grid(note, *optional)
print(optional)
# here it does other stuff
当我打电话时:
fen2grid(example, '.')
现在......打印应该打印一段时间。只是。 在我在函数中使用它之前,这只是一个测试,我正在测试它似乎是一件好事。它打印的是什么
('。',)
我需要这段时间,因为我需要使用它(它也可以是任何其他符号)
任何帮助将不胜感激!
答案 0 :(得分:4)
*args
读取任意数量的参数并将它们作为元组包含在内。要访问它们,您只需执行print(args[0])
或[print(x) for x in args]
编辑:请记住,args或kwargs都不是关键字,您可以将其替换为*或**前面的任何其他占位符
答案 1 :(得分:4)
我试图将可选的字符串参数传递给我的函数
*optional
并不是你怎么做的。至少不是像你试图使用的默认/关键字参数。那个是一个元组。
尝试
def fen2grid(note, optional=None)
print(optional)
有关详情,请参阅Defining Functions。