2016-06-25 3 views
1

전달 된 non-kwargs를 기반으로 kwargs의 'default'값을 도출하는 함수를 만들고 싶습니다. 예를 들어,이 예에서,다른 args에서 값을 얻는 Python kwarg

numbers= [1,2,3,4,5] 

def someMath(lst, divideBy = len(lst)): 
    return sum(lst)/divideBy 

, 나는리스트의 길이로 나눈 전달 된 번호 목록의 합계로 함수의 기본 반환 값을 싶습니다.

someMath(numbers, divideBy=5) # returns 5 

이 가능한 방법이다 :

someMath(numbers) # returns 3 

그러나 나는 아직도 옵션이 divideBy 값이 무엇인지 변경하려면?

+0

네 확실히 중복 – RSHAP

+0

"파이썬 기능의 동적 기본 인수"내 질문이 말이 정확히 – RSHAP

답변

1

나는 방법의 파이썬 프로그래머가 보통이 다음을 수행하는 것입니다 쓸 것이라고 생각 :

def someMath(lst, divideBy=None): 
    if divideBy is None: 
     return sum(lst)/len(lst) 
    return sum(lst)/divideBy 
+0

감사 응답 - 내 실제 프로그램에는 몇 가지 더 많은 논의가 있습니다. 그래서 kwarg를 쓰지 않고 할 수 있는지 궁금합니다. 각각에 대해 ... 어쩌면 단지 그렇지 않을 수도 있습니다. – RSHAP

+0

내 머리 당신은'filter (bool ...)와 인자의 문자열 값을 사용하여 좀 더 복잡한 작업을 수행 할 수 있습니다.하지만 단순히 값 하나 하나를 테스트하는 것보다 읽기 쉽지 않습니다. 거짓말 쟁이. – erewok

+0

네가 맞다. 너는 바로 그럴 필요가 없다. 귀하의 대답은 정답입니다. 그것이 가능한 한 빨리 표시 할 것입니다. – RSHAP

관련 문제