dwelch
dwelch

Reputation: 3046

problematic python function returns

I have a function similar to the following:

def getCost(list):
  cost = 0
  for item in list:
    cost += item
  return cost

and I call it as so:

cost = getCost([1, 2, 3, 4])

This is GREATLY simplified but it illustrates what is going on. No matter what I do, cost always ends up == 0. If I change the value of cost in the function to say 12, then 12 is returned. If I debug and look at the value of cost prior to the return, cost == 10

It looks like it is always returning the defined number for cost, and completely disregarding any modifications to it. Can anyone tell me what would cause this?

Upvotes: 0

Views: 130

Answers (1)

Rafe Kettler
Rafe Kettler

Reputation: 76965

This should solve all of your problems (if summing the list items in cost is indeed what you're trying to do:

def getCost(costlist):
    return sum(costlist)

It accomplishes the exact same things and is guaranteed to work. It's also much more simple than using a loop and an accumulator.

Upvotes: 2

Related Questions