이의이파이썬 기본 (변경 가능) 파라미터 초기화 스타일
def make_sandwich(ingredients=['ham', 'ham', 'bacon', 'ham']):
print("Making a sandwich with ", ingredients)
그러나 ['ham', 'ham', 'bacon', 'ham']
의 기본값 ingredients
의 목록을받는 함수 make_sandwich
보자, 우리는 사용한다 대신 다음과 같이 불변합니다 :
def make_sandwich(ingredients=None):
# initialized ingredients here
print("Making a sandwich with ", ingredients)
그래서 여기에 질문이 있습니다. 이 작업을 수행하는 방법을 알고있는 두 가지 방법이 있습니다. 그러나 어느 것이 더 나은 방법으로 간주되는지 확실하지 않습니다.
첫 번째
:if not ingredients:
ingredients = ['ham', 'ham', 'bacon', 'ham']
두 번째 :
ingredients = ingredients or ['ham', 'ham', 'bacon', 'ham']
는 개인적으로 나는 더 자주 두 번째를 사용합니다. 때로는 인수가 한 번만 사용되면 인라인으로조차 간다. 예 :
print("Making a sandwich with ", ingredients or ['ham', 'ham', 'bacon', 'ham'])
다른 이상을 선호하는 솔리드 이유가 있나요?
좋은 점! 내 다른 솔루션은 같은 이유로 고통 받고 있다고 생각합니다. – Uduse
사실, 그들은 똑같은 행동을하고 단지 선호의 문제 일뿐입니다. 귀하의 질문에 가장 잘 부합한다고 판단되면 대답을 선택하는 것을 잊지 마십시오. –