最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python如何在非创建全局变量的地方使用全局变量

来源:动视网 责编:小采 时间:2020-11-27 14:09:38
文档

python如何在非创建全局变量的地方使用全局变量

python如何在非创建全局变量的地方使用全局变量:在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 即python引用变量的顺序: 当前作用域
推荐度:
导读python如何在非创建全局变量的地方使用全局变量:在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 即python引用变量的顺序: 当前作用域


在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 即python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量。

然而当在一个函数内部为一个变量赋值时,并不是按照上面所说LEGB规则来首先找到变量,之后为该变量赋值。在Python中,在函数中为一个变量赋值时,有下面这样一条规则:“当在函数中给一个变量名赋值是(而不是在一个表达式中对其进行引用),Python总是创建或改变本地作用域的变量名,除非它已经在那个函数中被声明为全局变量. ”

python中golbal全局变量和nonlocal局部变量

global关键字用来在函数或其他局部作用域中使用全局变量。

gcount = 0 #定义了一个全局变量,(可以省略global关键字)
 
def global_test():
 print (gcount) #不修改,只是引用全局变量,不使用global关键字
 
def global_counter():
 global gcount 
 gcount +=1 #修改全局变量,需要使用global关键字
 return gcount

输出

1

2

3

nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。

def make_counter(): 
 count = 0 #定义一个局部变量,该局部变量作用范围在make_counter()方法内
 def counter(): 
 nonlocal count #在方法counter()中使用外层局部变量 count 
 count += 1 
 return count 
 return counter 
 
def make_counter_test(): 
 mc = make_counter() 
 print(mc())
 print(mc())
 print(mc())
 
make_counter_test()

输出

3

文档

python如何在非创建全局变量的地方使用全局变量

python如何在非创建全局变量的地方使用全局变量:在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 即python引用变量的顺序: 当前作用域
推荐度:
标签: 创建 使用 新建
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top