笔记之python全局和局部变量
age = 18 print(id(age)) # id 1979018800 def count_age1(): print(age) # 18 print('count_age1()的结果') count_age1() print('') def count_age2(): age = 1 # 不报错,但会有波浪线提示,这里的age认为是新定义的局部变量 print(age) # 1 print('count_age2()的结果') count_age2() print('') def count_age3(): print(age) age = 1 print(age) # count_age3() # 注意这样也会报错, local variable 'age' referenced before assignment def count_age4(): age += 1 # 会报错, # count_age4() # 报错 local variable 'age' referenced before assignment def count_age5(): global age # 规范写法,在函数内部要想用函数外面的变量,得用global申明 print(age) print(id(age)) # id 1979018800 age += 1 print(id(age)) # 赋值会改变引用 id 1979018832 print(age) # 19 print('count_age5()的结果') count_age5() print('') def count_age6(): global age # 函数内部之后出现此变量名的都是全局变量 print(age) print(id(age)) # id 1979018832 age = 1 print(id(age)) # 赋值会改变引用 id 1979018256 print(age) # 1 print('count_age6()的结果') count_age6() print('') def count_age7(i): age = i # 不报错,会有波浪线提示 age += 5 print(age) # 6 print('count_age7()的结果') count_age7(age) print('')
执行结果:
1979018800
count_age1()的结果
18
count_age1()的结果
18
count_age2()的结果
1
1
count_age5()的结果
18
1979018800
1979018832
19
18
1979018800
1979018832
19
count_age6()的结果
19
1979018832
1979018256
1
19
1979018832
1979018256
1
count_age7()的结果
6
6

浙公网安备 33010602011771号