变量作用域

观察以下代码

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

相关推荐
GIOTTO情10 分钟前
Infoseek舆情处置系统的技术实现与落地实践
python
计算机安禾20 分钟前
【c++面向对象编程】第40篇:单例模式(Singleton)的多种C++实现
开发语言·c++·单例模式
new_dev28 分钟前
Python实现Android自动化打包工具:加固、签名、多渠道一键完成
android·python·自动化
_日拱一卒36 分钟前
LeetCode:114二叉树展开为链表
java·开发语言·算法
天天进步201538 分钟前
从零打造 Python 全栈项目:智能教学辅助系统
开发语言·人工智能·python
kkeeper~1 小时前
0基础C语言积跬步之内存函数
c语言·开发语言
吃好睡好便好1 小时前
在Matlab中绘制杆状图
开发语言·学习·算法·matlab·信息可视化
带带弟弟学爬虫__1 小时前
dyAPP数据采集-个人主页、发布、搜索、评论
服务器·python·算法·flutter·java-ee·django
还是鼠鼠1 小时前
AI掘金头条新闻系统 (Toutiao News)-相关推荐
后端·python·mysql·fastapi·web
桀人1 小时前
C++——内存管理——new和delete的超详细解析
开发语言·c++