变量作用域

观察以下代码

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不相关了

相关推荐
沙蒿同学2 小时前
当古诗词遇上 AI:从 38 万句诗词中取一个好名字
python·算法·架构
xxie1237942 小时前
Python装饰器与语法糖
开发语言·python
郑州光合科技余经理2 小时前
海外外卖平台源码改造实战——多语言核心代码实现
java·开发语言·前端·后端·mysql·架构·php
CClaris2 小时前
大模型量化从0到1(五):GPTQ 原理详解 + 从零量化一个真实大模型
人工智能·python·算法·机器学习
凯瑟琳.奥古斯特3 小时前
力扣1012数位DP解法详解
开发语言·c++·算法·leetcode·职场和发展
Railshiqian3 小时前
UserPickerActivity 内部逻辑分析
开发语言·python
一tiao咸鱼3 小时前
前端转 agent # 02 - FastAPI 框架入门与原理
前端·python
喜欢打篮球的普通人3 小时前
Trition程序编写:从“Hello CUDA“到“Hello Triton“:向量加法背后的编译黑魔法
开发语言·后端·rust
code_std3 小时前
java WebSocket 使用
java·开发语言·websocket
gihigo19983 小时前
FastSLAM2.0(精度优于1.0)MATLAB 实现
开发语言·matlab