![](/img/trans.png)
[英]Using a Variable from One Function Inside Another Function then Calling It
[英]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()
您的代码有问题:
有明确的变量和方法名称。 g
和G
可能会使读者感到困惑。
您未使用if __name__ == "__main__":
您在H()
返回的结果以及H()
函数都是不必要的。
使用文档字符串可帮助提高代码的可读性。
来自评论的问题 :
我有一个问题,如果我在第一个函数中有两个或多个变量,但我只想调用其中一个,该怎么办?
您的函数可以具有任意多个变量。 如果要返回多个变量,则可以使用字典(键,值)列表或元组。 这完全取决于您的要求。
是否有必要给新变量使用不同的名称
a
和b
,或者我可以使用相同的x
和g
吗?
绝对! 声明另一个名为x
或y
变量将导致先前的声明被覆盖。 这可能会使调试变得困难,并且您和您的代码阅读者会感到沮丧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.