2
, 나는 빈리스트 사용하지 않는 이유를 이해 기본 매개 변수로 :파이썬 빈의 Iterable이 방법
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...
을 그것은 참조 ms이 경우에 나에게 청소기. 내가 잘못?
나에게 잘 어울립니다. * 표시하지 않은 소스에 대한 참조는 표시 한 것과 동일합니까? –
나는 두 사람이 약간 다른 것을 전달한다고 느낍니다. 'b = None'은''b''가 선택적 매개 변수라고 말합니다.''b''을 지정하지 않았기 때문에 다른 행동을합니다. 다른 하나는 "이 목록에 예상되는 동작을 수행하면 비어있게됩니다"입니다. – michaelb
나는 당신과 함께이 사람입니다. "특별한 경우가 충분히 특별하지 않습니다." 할당 한 기본값은 이미 "선택적 매개 변수"를 전달하고 있습니다. –