在这种方法中,我明白为什么不能使用空列表:
我认为在这种情况下更清晰。我错了吗?
def some_method(self,a,b=[]):
for x in b:
etc...
我知道推荐的做法是这样的:
def some_method(self,a,b=None):
b = b or []
for x in b:
etc...
但是,对于一个非常明确只读的值b,为什么不使用这个(一个空元组):
def some_method(self,a,b=()):
for x in b:
etc...
我认为在这种情况下更清晰。我错了吗?
b=None
的意思是“b
是一个可选参数,因为我没有指定b
,所以执行不同的行为”。而另一个则是“按预期对这个空列表执行操作”。 - michaelb