2017-02-12 7 views
0

생성자 표현식의 값과 어떻게 상호 작용할 수 있습니까? 예를 들어 :파이썬에서 생성 인자 표현식을 입력 인자로 가짐

범위 알려져있다
def sumValues(*args): 
# compute the sum of values 

sumValues(abs(x) for x in range(0,10)) 

(예를 들어, 우리는 범위는 [알고 0,10)), 우리는 루프를 넣을 수 있지만 범위는 알 수없는 어떤 경우?

+0

(같은 https://docs.python.org/2/library 상기와 /functions.html#sum) function – Copperfield

+0

감사합니다. 그러나 내장 함수를 사용하지 않으려했습니다. – Hercules

답변

1

당신이 당신의 기능을 할 방법에 따라 호출 할 수는 루프에 대한)와 다음

def my_sum(iterable): 
    total = 0 
    for x in iterable: 
     total += x 
    return total 

sum 빌드에서의 동작을 모방하고 max의 행동을 모방하고 그것을 사용하려는 경우

my_sum(range(10)) 
my_sum(abs(x) for x in range(0,10)) 
my_sum([1,2,3,4,5,6]) 

처럼 사용 또한 등 my_sum(1,2), my_sum(1,2,3), my_sum(1,2,3,4,5,6,7), 당신은 또한 빌드 - [`sum`]을 사용할 수 있습니다이 경우에 다음

def my_sum(*argv): 
    total = 0 
    values = None 
    if len(argv) == 1: 
     values = argv[0] 
    else: 
     values = argv 
    for x in values: 
     total += x 
    return total 
+0

포인트가 맑아집니다. 감사! – Hercules

0

생각했습니다. 여기에 대답 : 당신이 더 일반적으로 목록, 발전기, 또는에서 사용할 수있는 반복 가능한 (아무것도를 호출 할 경우

def sumValues(*args): 
    # compute the sum of values 
    total = 0 
    for item in args[0]: 
     total += item 
    return total 

print(sumValues(abs(x) for x in range(0,10))) 
[output] => 45