繁体   English   中英

从一个函数调用变量到另一个函数的问题

[英]Problem with calling a variable from one function into another

我试图通过使用命令return将一个函数中的变量调用到另一个函数中,但没有成功。 这是我的示例代码:

def G():
    x = 2
    y = 3
    g = x*y
    return g

def H():
    r = 2*G(g)
    print(r)
    return r
H()

当我运行代码时,我收到以下错误NameError: name 'g' is not defined

提前致谢!

您的函数def G():返回一个变量。 因此,当您调用它时,您将为返回的变量分配一个新变量。

因此,您可以使用以下代码:

def H():
    G = G()
    r = 2*G
    print (r)

您无需给出以下声明:

return r

当您接受了以上答案后,我想抽出一些时间来帮助您学习和清理代码。

NameError: name 'g' is not defined

因为g是函数G()的局部变量,所以出现此错误

干净版本:

def multiple_two_numbers():
    """
      Multiplies two numbers

      Args:
        none

      Returns:
        product : the result of multiplying two numbers
    """

    x = 2
    y = 3
    product = x*y
    return product


def main():

    result = multiple_two_numbers()
    answer = 2 * result
    print(answer)

if __name__ == "__main__":
    # execute only if run as a script
    main()

您的代码有问题:

  1. 有明确的变量和方法名称。 gG可能会使读者感到困惑。

  2. 您未使用if __name__ == "__main__":

  3. 您在H()返回的结果以及H()函数都是不必要的。

  4. 使用文档字符串可帮助提高代码的可读性。

来自评论的问题

我有一个问题,如果我在第一个函数中有两个或多个变量,但我只想调用其中一个,该怎么办?

您的函数可以具有任意多个变量。 如果要返回多个变量,则可以使用字典(键,值)列表或元组。 这完全取决于您的要求。

是否有必要给新变量使用不同的名称ab ,或者我可以使用相同的xg吗?

绝对! 声明另一个名为xy变量将导致先前的声明被覆盖。 这可能会使调试变得困难,并且您和您的代码阅读者会感到沮丧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM