在这种方法中,我理解为什么不使用空列表:
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...
在这种情况下,我似乎更清洁。我错了吗?
答案 0 :(得分:1)
元组技术应该有效,尽管它并不常见。同样值得注意的是,如果你真的没有写信给b
,那么把它作为一个列表也不应该伤害你。
我可能会讨论的唯一(挑剔)异议是(在我看来至少)在语义上,元组理想地更像是记录(想想日期时间结构)而不是同构值的序列。
我也同意上面的michaelb那个"空序列的语义"没有什么不同。