目录
前言全局变量全局关键字前言
全局变量是那些没有在任何函数内部定义并具有全局范围的变量,而局部变量是那些在函数内部定义的变量,其范围仅限于该函数。换句话说,我们可以说局部变量只能在初始化它的函数内部访问,而全局变量在整个程序和每个函数内部都可以访问。局部变量是那些在函数内部初始化并且仅属于该特定函数的变量。它不能在函数之外的任何地方访问。让我们看看如何创建一个局部变量。
示例:创建局部变量
def f(): # local variable s = "I love python" print(s) # 驱动程序代码 f()
输出:
(资料图)
I love python
如果我们尝试在函数外部使用这个局部变量,那么让我们看看会发生什么。
例子:
def f(): # local variable s = "I love python" print("Inside Function:", s) # 驱动程序代码 f() print(s)
输出:
NameError: name "s" is not defined
全局变量
这些是在任何函数之外定义的并且可以在整个程序中访问的那些,即在每个函数的内部和外部。让我们看看如何创建一个全局变量。
示例:定义和访问全局变量
# This function uses global variable s def f(): print("Inside Function", s) # Global scope s = "I love python" f() print("Outside Function", s)
输出:
Inside Function I love python
Outside Function I love python
变量 s 被定义为全局变量,既可以在函数内部使用,也可以在函数外部使用。
注意:由于没有局部变量,因此将使用全局变量的值,但请确保局部变量和全局变量应具有相同的名称。
现在,如果有一个同名的变量在函数内部以及全局初始化怎么办。现在问题来了,局部变量是否会对全局变量产生一些影响,反之亦然,如果我们在函数 f() 中更改变量的值会发生什么?它也会影响全局变量吗?我们在下面的代码中对其进行测试:
# 该函数有一个名称与 s 相同的变量。 def f(): s = "Me too." print(s) # 全局范围 s = "I love python" f() print(s)
输出:
Me too.
I love python
如果在函数范围内也定义了具有相同名称的变量,那么它将仅打印函数内部给出的值,而不是全局值。
问题是,如果我们尝试更改函数内部的全局变量的值会怎样。让我们用下面的例子来看看。
例子:
# 该函数使用全局变量 s def f(): s += "GFG" print("Inside Function", s) # Global scope s = "I love python" f()
输出:
UnboundLocalError: local variable "s" referenced before assignment
为了使上述程序正常工作,我们需要使用“global”关键字。让我们看看这个全局关键字是什么。
全局关键字
如果我们想要进行赋值或更改全局变量,我们只需要在函数中使用global 关键字。打印和访问不需要全局。由于在 f() 中对 s 的赋值,Python“假设”我们需要一个局部变量,因此第一条语句会抛出错误消息。如果没有将其声明为全局变量,则在函数内部更改或创建的任何变量都是局部变量。要告诉 Python,我们要使用全局变量,我们必须使用关键字“global”,如以下示例所示:
示例 1:使用全局关键字
# 此函数修改全局变量"s" def f(): global s s += " HY" print(s) s = "Look for Haiyong Python Section" print(s) # 全局范围 s = "Python is great!" f() print(s)
输出:
Python is great! HY
Look for Haiyong Python Section
Look for Haiyong Python Section
现在没有歧义了。
示例 2:使用全局变量和局部变量
a = 1 # 使用全局,因为没有局部“a” def f(): print("Inside f() : ", a) # 变量“a”被重新定义为局部变量 def g(): a = 2 print("Inside g() : ", a) # 使用 global 关键字修改全局 "a" def h(): global a a = 3 print("Inside h() : ", a) # 全局范围 print("global : ", a) f() print("global : ", a) g() print("global : ", a) h() print("global : ", a)
输出:
global : 1
Inside f() : 1
global : 1
Inside g() : 2
global : 1
Inside h() : 3
global : 3
到此这篇关于Python变量教程之全局变量和局部变量的文章就介绍到这了,更多相关Python全局与局部变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 2现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 3如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 4AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 5转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 6充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 7好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 8名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 9亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 10京东绿色建材线上平台上线 新增用户70%来自下沉市场