2016-01-18 2 views
-2

Я довольно новичок в python, и мне было интересно узнать о return и о том, что внутри () при определении новой функции. I не хотите запустить любой код внутри if __name__ == '__main__':. Мне нужна функция для этого. Почему это не будет работать?Использование возвращенных переменных в других функциях

def money(): 
    coins = 100 
    return coins 
def doubleMoney(coins): 
    doubleCoins = int(coins * 2) 
    return doubleCoins 
def printMoney(doubleCoins): 
    print("Your coins doubled are:", doubleCoins) 
if __name__ == '__main__': 
    money() 
    doubleMoney(coins) 
    printMoney(doubleCoins) 
+1

Что вы подразумеваете под "работой"? Он ничего не сделает, потому что вы никогда не называете какие-либо функции. – BrenBarn

+0

Извините. Я только что исправил это. – retep

+1

Вам нужно что-то большее, как 'printMoney (doubleMoney (money()))'. – eskaev

ответ

2

Нет, это не сработает. Подумайте о функции как о машине. Вы помещаете вещи в один конец (аргументы, ака «материал в () при определении новой функции), и вы получаете что-то на другом конце. То, что вы получаете, это значение . Оно не создает переменную с определенное имя или что-то в этом роде.

Так что, если вы хотите использовать значение doubleMoney(coins), вам нужно что-то сделать с ним. В вашем примере вы просто вызываете doubleMoney(coins). Это приведет к значению, но вы Если вы хотите, чтобы одна функция использовала значение, возвращаемое другой функцией, вам нужно как-то связать их. То, что вы, вероятно, ищете, такое:

coins = money() 
doubleCoins = doubleMoney(coins) 
printMoney(doubleCoins) 

Вы также можете сделать все это в одной строке с printMoney(doubleMoney(money())).

Они Главное, что только потому, что вы сделали return coins не означает переменную с этим именем создается, когда money() возвращается. Возвращается только значение ; если вы хотите сделать переменную, вы должны сделать это самостоятельно вне функции, как в примере, который я показал.

+0

Я хочу запустить его, фактически не определяя ничего, когда он выполняется. Я хочу, чтобы функция выполняла это. – retep

+0

@retep: вы можете сделать это, создав глобальные переменные, но это не связано с возвращаемыми значениями, а также не очень хорошая идея. Или вы можете сделать то, что я сказал в своем втором примере из одной строки. – BrenBarn

+0

Я сделал программу с глобальными переменными, и я пытаюсь их удалить. Это проблема. См. Http://codereview.stackexchange.com/questions/117070/python-blackjack-program – retep

Смежные вопросы