我有这个功能:
def choice(default=True):
if default:
return 1
else:
return 0, "Your choice is 0"在第一种情况下,我得到一个变量,在第二种情况下,我得到两个变量。
在Python中这样做有问题吗?我测试过了,它可以工作,但例如在c++中,这种事情就不能工作。你知道有没有关于这个的规则,比如PEP8之类的?
非常感谢!
发布于 2021-10-04 07:44:02
根据所传递的选项,使用具有不同返回值签名的函数是完全可以的。参见np.unique for example。因为Python没有函数重载,所以这是实现这一点的规范方法。重要的一点是对它进行适当的记录。在np.unique的例子中,你必须使用返回值的所有组合来定义函数的八个不同版本。不切实际,难以维护,而且大多是多余的。
在Python语言中处理这种“函数重载”的另一种方法是始终使用相同的返回值签名,但对未使用的值返回None。我更喜欢前一种方法。
https://stackoverflow.com/questions/69432151
复制相似问题