变量作用域

观察以下代码

python 复制代码
def getPoint():
    x = 10
    y = 20
    return x, y

x, y = getPoint()

在这个代码中,函数内部存在x,y 函数的外部也有x,y.但是这两组x,y不是相同的变量,而只是恰好有一样的名字

变量只能在所在的位置的内部生效

在函数getPoint()内部定义的x,y只是在函数的内部生效,一旦出了函数的范围这两个变量就不在生效

python 复制代码
def getPoint():
    x = 10
    y = 20
    return x, y

getPoint()
print(x, y)

在不同的作用域中,允许出现相同的变量名

python 复制代码
x = 20

def test():
    x = 10
    print(f"函数内的x:{x}")
test()
print(f"函数外的x:{x}")

在函数内部的变量叫"局部变量", 不在任何函数内部的变量叫"全局变量"

如果函数内部尝试访问不到的变量在局部不存在,就会去尝试去全局作用域中查找

python 复制代码
x = 10

def test():
    print(f"x = {x}")
    
test()

如果想在函数内部,修改全局变量的值,需要使用global关键字声明

python 复制代码
x = 20

def test():
    global x
    x = 10
    print(f"函数内的x:{x}")

test()
print(f"函数外的x:{x}")

如果此处没有global,则函数内部的x = 10就会被视为是创建一个局部变量x,这样就和全局变量x不相关了

相关推荐
youliroam9 小时前
ESP32-S3+OV2640简单推流到GO服务
开发语言·后端·golang·esp32·ov2640
BrianGriffin9 小时前
asdf 安装的 PHP 上传文件大小限制
开发语言·php
2501_9167665410 小时前
【面试题1】128陷阱、==和equals的区别
java·开发语言
F_D_Z10 小时前
【Python】家庭用电数据的时序分析
python·数据分析·时序分析·序列分解
a程序小傲10 小时前
蚂蚁Java面试被问:注解的工作原理及如何自定义注解
java·开发语言·python·面试
love530love11 小时前
【笔记】ComfyUI “OSError: [WinError 38] 已到文件结尾” 报错解决方案
人工智能·windows·python·aigc·comfyui·winerror 38
似水এ᭄往昔11 小时前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
charlie11451419111 小时前
嵌入式现代C++教程:C++98——从C向C++的演化(3)
c语言·开发语言·c++·笔记·学习·嵌入式
lcreek11 小时前
LeetCode215. 数组中的第K个最大元素、LeetCode912. 排序数组
python·算法·leetcode
TAEHENGV11 小时前
创建目标模块 Cordova 与 OpenHarmony 混合开发实战
android·java·开发语言