網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
Python全局變量關(guān)鍵字global的簡(jiǎn)單使用_python
作者:玩轉(zhuǎn)測(cè)試開發(fā) ? 更新時(shí)間: 2022-08-14 編程語(yǔ)言簡(jiǎn)介:
1、global是Python中的全局變量關(guān)鍵字。
2、全局變量是編程術(shù)語(yǔ)中的一種,源自于變量之分。
3、變量分為局部與全局,局部變量又可稱之為內(nèi)部變量。
4、由某對(duì)象或某個(gè)函數(shù)所創(chuàng)建的變量通常都是局部變量,只能被內(nèi)部引用,而無(wú)法被其它對(duì)象或函數(shù)引用。
5、全局變量既可以是某對(duì)象函數(shù)創(chuàng)建,也可以是在本程序任何地方創(chuàng)建。全局變量是可以被本程序所有對(duì)象或函數(shù)引用。
6、global關(guān)鍵字的作用是可以使得一個(gè)局部變量為全局變量。
案例1:全局無(wú)法使用局部變量。
# -*- coding: utf-8 -*-
def test1():
# 局部變量 local
local_var = "a"
print(local_var)
# 全局無(wú)法使用局部變量,只有對(duì)應(yīng)的局部作用域可用
# print(local_var) # NameError: name 'local_var' is not defined
案例2:全局變量,任意范圍均可使用。
global_var = 1
def test2():
# 函數(shù)內(nèi)使用全局變量
print(global_var + 1)
def inner():
# 嵌套函數(shù)內(nèi)使用全局變量
print(global_var + 2)
return global_var + 3 # 返回值內(nèi)使用全局變量
# 函數(shù)外使用全局變量。
print(global_var)
案例3:函數(shù)內(nèi)定義的局部變量
def test3():
# 函數(shù)內(nèi)變量,但對(duì)于下級(jí)函數(shù)就是全局變量,對(duì)于外部來(lái)說就是局部變量
func_var = 1
def inner():
print(func_var)
return func_var
return inner()
test3()
案例4:函數(shù)間global關(guān)鍵字的作用
def test4():
# global關(guān)鍵字作用
global func_var
func_var = 2
# 調(diào)用test5可以打印 func_var,去掉global會(huì)報(bào)錯(cuò)。
test5()
print(test5.__globals__)
def test5():
print(func_var)
test4()
案例5:不同文件模塊中的global,注意test6, test7為不同文件。
# a.py
def test6():
# global關(guān)鍵字作用
global func_var
func_var = 3
# b.py
from a import test6
def test7():
print(test6.__globals__["func_var"])
# 不先執(zhí)行test6的情況下會(huì)拋出異常。KeyError: 'func_var'
test7() # KeyError: 'func_var'
案例6:不同文件模塊中的global,注意test6, test7為不同文件。
# a.py
def test6():
# global關(guān)鍵字作用
global func_var
func_var = 4
# b.py
from a import test6
def test7():
print(test6.__globals__["func_var"])
# 先執(zhí)行test6的情況下,test可以使用 func_var
test6()
test7() # 4
附:用global聲明多個(gè)變量需要用逗號(hào)分
num = 0
def cc():
global count,num
count = count+1
num = num+2
print(count,num)
cc()
3 2
# 可以函數(shù)中的global聲明能夠修改全局變量
num
Out[24]: 2
#
count
Out[25]: 3
在使用全局變量的場(chǎng)合,也可用類變量代替
class C:
count = 3
def cc():
count = C.count+1
print(count)
cc()
4
結(jié)論:
1、只導(dǎo)入包,global定義的全局變量沒有被加到globals里面。
2、執(zhí)行g(shù)lobal所在的對(duì)應(yīng)函數(shù),global定義的函數(shù)內(nèi)會(huì)存入對(duì)應(yīng)變量,其他函數(shù)內(nèi)則不會(huì)存入。
原文鏈接:https://blog.csdn.net/hzblucky1314/article/details/122724678
相關(guān)推薦
- 2022-05-13 C語(yǔ)言中動(dòng)態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)解析_C 語(yǔ)言
- 2022-05-15 Element框架里日期選擇器限制時(shí)間,最多選31天
- 2022-10-30 Android中二維碼的掃描和生成(使用zxing庫(kù))_Android
- 2022-05-23 React中setState同步異步場(chǎng)景的使用_React
- 2022-06-08 FreeRTOS實(shí)時(shí)操作系統(tǒng)支持時(shí)間片示例詳解_操作系統(tǒng)
- 2022-12-05 通過sc命令獲得System權(quán)限的代碼_DOS/BAT
- 2022-04-20 C++的多態(tài)和虛函數(shù)你真的了解嗎_C 語(yǔ)言
- 2022-04-14 Python中字典的相關(guān)操作介紹_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支