2024-10-01 07:29:51 发布
网友
我是python的新手尝试执行以下代码:
def dubleIncrement(): j = j+2 def increment(): i = i+1 dubleIncrement() if __name__ == "__main__": i = 0 j = 0 increment() print i print j
但是得到这个错误:
有人知道为什么i不是全局的吗
i
在函数中声明global关键字来访问全局变量,而不是局部变量。i、 e
global
def dubleIncrement(): global j j = j+2 def increment(): global i i = i+1
请注意,当您在if语句中声明i = 0和j = 0时,这是在设置一个全局变量,但由于它不在任何函数的范围内,因此此处不必使用global关键字。在
if
i = 0
j = 0
理想情况下,您应该尽量避免使用全局变量,并尝试将变量作为参数传递给函数(想想当您决定在其他函数中再次使用变量名i和{}时会发生什么情况,可能会发生丑陋的冲突!)。以下是编写代码的一种更安全的方法:
在函数中声明
global
关键字来访问全局变量,而不是局部变量。i、 e请注意,当您在
if
语句中声明i = 0
和j = 0
时,这是在设置一个全局变量,但由于它不在任何函数的范围内,因此此处不必使用global
关键字。在理想情况下,您应该尽量避免使用全局变量,并尝试将变量作为参数传递给函数(想想当您决定在其他函数中再次使用变量名}时会发生什么情况,可能会发生丑陋的冲突!)。以下是编写代码的一种更安全的方法:
^{pr2}$i
和{相关问题 更多 >
编程相关推荐