Быстрого вопрос:Вызов функции в функции без аргументов
Я хочу, чтобы вызвать основную функцию без аргументов, так и в основной функции, у меня есть несколько других функций, которые действительно имеют аргументы. Как мне это сделать?
Вот несколько функций:
# Takes the Portfolio dictionay, unpacks the multiple tuples, and calculates
# the total price of the shares at time of purchase
def total_purchase_price(portfolio):
totalprice = 0
totalpurprice = 0
for item in portfolio:
purdate, purprice, numshares, sym, curprice = item
totalprice += purprice * numshares
totalpurprice = totalprice
return totalpurprice
# Takes the Portfolio dictionay, unpacks the multiple tuples, and calculates
# the current total value of the shares
def total_value(portfolio):
totalprice = 0
totalvalueprice = 0
for item in portfolio:
purdate, purprice, numshares, sym, curprice = item
totalprice += curprice * numshares
totalvalueprice = totalprice
return totalvalueprice
# Takes the previous two functions, and subtracts them to get the total
# gain/lost of the shares
def total_gain(total_purchase_price, total_value, portfolio):
gainlost = total_value - total_purchase_price
return gainlost
отл. То, что я прямо сейчас (Примечание: я знаю, что это не будет работать, только там за то, что я хочу, так как каждая функция возвращает значение):
def testQ1(total_purchase_price, total_value, total_gain, portfolio):
print("Total Cost =", total_purchase_price)
print("Current Value =", total_value)
print("Total gain/lost =", total_gain)
return
отл. Чего я хочу достичь:
def testQ2():
total_purchase_price(portfolio)
total_value(portfolio)
total_gain(total_purchase_price, total_value, portfolio)
print("Total Cost =", total_purchase_price)
print("Current Value =", total_value)
print("Total gain/lost =", total_gain)
return
Как бы это сделать? Спасибо
Являются ли эти значения глобальных и где они инициализируются. Будет ли 'testQ2()' читать их из файла и иметь другую функцию, которая возвращает их? – sabbahillel
Вы не присваиваете возвращаемые значения переменным. –
testQ2 должен знать, что такое портфель, как говорит sabbahillel, вы должны использовать глобальные vars или сделать класс, а затем они могут быть атрибутом класса – Mixone