2016-01-18 53 views
-2

我对Python很新,我想知道return和定义一个新函数时()里面的东西。我不要想运行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