【问题标题】:Using returned variables in other functions在其他函数中使用返回的变量
【发布时间】:2016-01-18 22:35:13
【问题描述】:

我对 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)

【问题讨论】:

  • “工作”是什么意思?它不会做任何事情,因为您从不调用任何函数。
  • 很抱歉。我刚刚修好了。
  • 你需要类似printMoney(doubleMoney(money()))的东西。
  • 如果您有多个问题,请创建一个新线程而不是更改它。

标签: python function python-3.x return


【解决方案1】:

不,那行不通。把函数想象成一台机器。你把东西放在一端(参数,也就是“定义新函数时() 中的东西),然后你在另一端得到一些东西。你得到的是一个。它不会创建具有特定名称或类似名称的变量。

所以如果你想使用doubleMoney(coins) 的值,你必须对它做一些事情。在您的示例中,您只需调用doubleMoney(coins)。这将产生一个值,但您不会对它做任何事情。如果您希望一个函数使用另一个函数返回的值,则必须以某种方式将它们链接起来。您可能正在寻找类似的内容:

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

您也可以使用printMoney(doubleMoney(money())) 在一行中完成所有操作。

他们的关键是,仅仅因为你做了return coins 并不意味着当money() 返回时创建具有该名称 的变量。只返回;如果你想创建一个变量,你必须在函数之外自己做,就像我展示的例子一样。

【讨论】:

  • 我想在执行时不实际定义任何内容来运行它。我希望函数能够做到这一点。
  • @retep:您可以通过创建全局变量来做到这一点,但这与返回值无关,也不是一个好主意。或者你可以按照我在第二个单行示例中所说的那样做。
  • 我用全局变量制作了一个程序,我正在尝试删除它们。那就是问题所在。见codereview.stackexchange.com/questions/117070/…
  • 我只需要打开一个新问题。
  • @retep:您的问题的答案与我在此处提出的建议相同 (bet = get_bet(tokens))。摆脱全局变量是个好主意,但您需要放弃可以只使用现有代码并以某种方式“删除全局变量”而其他一切保持不变的想法。通常,如果您的代码依赖于许多全局变量,那么改进它将涉及以相当深入的方式对其进行重组。 (这是您首先要避免使用全局变量的原因之一,以避免以后遇到这种痛苦。)
猜你喜欢
  • 2020-07-02
  • 2022-01-03
  • 1970-01-01
  • 2021-10-26
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多