16 python
我试图理解是否一个好主意或不传递作为参数python等效的null; 我认为是无.
示例:您有一个接受n个参数的函数; 在一种情况下,我只需要第一个和第二个参数,所以不是用args和kwargs写一个长函数定义,而是操纵它们,我可以将null传递给其中一个参数.
def myfunct(a, b, c[optional], d[optional], e, f....n):
[do something]
if d=="y":
[do something but use only a and b]
Run Code Online (Sandbox Code Playgroud)
执行:
myfunct(a, b, c, d, .....n) #OK!
myfunct(a, b, None, "y", None,....n) #OK?
Run Code Online (Sandbox Code Playgroud)
这理论上不应该引发错误,因为null是我认为的值(这不是C++),虽然我不确定这是否是正确的做事方式.该函数知道当其中一个参数是特定值时存在一个条件,并且在这种情况下它不会要求除1以外的任何其他参数; 所以使用null的风险应该是0.
这是可以接受的,还是我可能会在未来使用这种方法引发问题?
rlb*_*ond 22
使用None来表示"我没有提供这个论点"没有错.
您可以在代码中检查无:
if c is None:
# do something
if d is not None:
# do something else
Run Code Online (Sandbox Code Playgroud)
我要做的一个建议是将None作为任何可选参数的默认参数:
def myfunct(a, b, e, f, c=None, d=None):
# do something
myfunct(A, B, E, F)
Run Code Online (Sandbox Code Playgroud)