我的函数由于某种原因自动将字符串转换为元组?

时间:2017-01-10 20:50:40

标签: python string function tuples

我在这里很困惑。我正在尝试将可选的字符串参数传递给我的函数,但是一旦添加了参数,它就会将字符串转换为元组?我怎么能阻止它这样做或转换回来?

我有这个:

def fen2grid(note, *optional)
    print(optional)
    # here it does other stuff

当我打电话时:

fen2grid(example, '.')

现在......打印应该打印一段时间。只是。 在我在函数中使用它之前,这只是一个测试,我正在测试它似乎是一件好事。它打印的是什么

('。',)

我需要这段时间,因为我需要使用它(它也可以是任何其他符号)

任何帮助将不胜感激!

2 个答案:

答案 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