首先解释一下global的作用,global用于在函数内部声明一个全局变量,从而使得函数中对该变量的修改能够影响到文件级别的全局变量。
针对第一个错误提示没有定义,这很可能是由于变量作用域的问题造成的。在Python中,变量作用域分为全局作用域和局部作用域。如果在函数内部使用一个变量,但是该变量在函数中并没有被定义或声明为全局变量,则会引发"NameError: name 'xxx' is not defined"的错误。因此,我们可以通过将该变量声明为global,使其变成全局变量,从而避免"NameError"的发生。
针对第二个错误,我们需要具体看一下错误提示,才能得出准确的答案。
关于如何正确使用global,我给出以下步骤:
1.在函数中声明global变量。例如,声明一个名为"b"的全局变量:
def my_function():
global b
b = "hello"
2.通过函数对该全局变量进行修改。例如,将b的值修改为"world":
my_function()
print(b) # 输出:world
需要注意的是,修改全局变量应当放在函数内部,而不是在函数外部。如果在函数外部修改全局变量,可能会导致变量作用域的混乱,从而引发不可预测的错误。
总结一下,如果遇到 "NameError" 的提示,则需要检查变量作用域的问题,并将变量声明为global。此外,正确使用global的关键在于对全局变量的声明和修改需要在同一个函数中完成。
第一个,num确实没有定义,只有函数f的参数名称用了num。
第二个,代码最后一行打印b,但是b的定义在函数f中,作用域只在函数f中,加全局,可以将作用域变成全局,函数f外也可以访问。