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

时间:2018-08-31 16:14:49

标签: python-3.x function

我试图通过使用命令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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

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

您无需提供此声明:

return r

答案 1 :(得分:0)

尽管您已经接受了以上答案,但我想抽出时间来帮助您学习和清理代码。

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的变量将导致先前的声明被覆盖。这可能会使调试变得困难,并且您和您的代码阅读者会感到沮丧。