【发布时间】:2022-01-23 21:31:54
【问题描述】:
def main(x1, x2, x3):
a = ops() + 10
return print("Result are ", a)
def ops():
global x1,x2, x3
y = (x1 + x2 + x3)
return y
main(10, 7, 3)
NameError: name 'x1' is not defined
可以看出,我将 x1、x2 和 x3 声明为从属函数中的全局变量,并且已经将这些变量作为主函数的参数。感谢任何帮助。
【问题讨论】:
-
欢迎来到 Stack Overflow!请拨打tour。你有什么问题?对我来说,这显然行不通,但我有经验的好处。为什么你认为这会奏效?就此而言,您实际上想要完成什么?这似乎是一个XY problem,尤其是因为globals are usually bad。比如,为什么
ops()首先依赖非本地人?为什么不能带参数?\请edit澄清。有关更多提示,请参阅How to Ask。 -
在编写代码时,
x1(也包括x2和x3)仅在main()内部可用。这是因为它们被列为参数。ops()中的global行什么也不做,因为没有要引用的全局x1。 -
你为什么不把你的变量(或列表或其他东西)传递给
ops()?