在 python 中检查变量是否存在的多种方法
toyiye 2024-09-12 20:54 4 浏览 0 评论
变量是用于存储某些数据的容器。它们表示内存位置。任何类型的数据都可以存储在 Python 的变量中,包括整数,字符串,浮点数,布尔值等。
在 Python 中,定义变量时不需要指定变量的数据类型。但是,在使用变量之前,必须先定义它们,只需为变量赋值即可完成,如下所示:
x = 123
在这里,“x” 是一个变量的名称。由于 x 保存一个整数值,因此它是一个整数变量。
变量的作用域
变量的声明确定了变量的作用范围。Python 变量中存在两个基本作用域:局部变量、全局变量。
- 局部变量
在函数等模块中定义的变量通常仅在该块中可用。在范围之外,无法访问它们。这些类型的变量称为局部变量。
以下示例中,如果从变量作用范围之外访问它们,则会触发 NameError 异常。
def hello():
# 函数内部定义并使用变量
name = 'Li'
print('Hello ', name)
hello()
# 函数外部使用变量
print('Hello ', name)
# 输出:
Hello Li
Traceback (most recent call last):
File "D:\Backup\Desktop\2.py", line 8, in <module>
print('Hello ', name)
NameError: name 'name' is not defined
在上面的例子中,name 是 hello() 函数的局部变量,不能在它之外访问。
- 全局变量
全局变量是存在于函数等模块之外的变量。任何函数都可以访问其值。
name = 'Li'
def hello():
# 函数内部使用外部定义的变量
print('Hello ', name)
hello()
验证变量是否存在
Python 中检查变量是否存在,避免因为变量未已定义或作用域问题引发异常。
- locals()
locals() 函数会以字典类型返回当前位置的全部局部变量。我们可以检查变量是否存在于 locals() 中。
def bianliang():
x = 123
if 'x' in locals():
print ('变量已经定义!')
else:
print ('没有发现该变量名!')
bianliang()
if 'x' in locals():
print ('变量已经定义!')
else:
print ('没有发现该变量名!')
# 输出:
变量已经定义!
没有发现该变量名!
在上面的示例中,定义了一个函数 “bianliang()”,并在函数内部定义了一个变量 “x”。由于 locals() 函数返回包含当前局部变量的字典,因此我们可以使用 “in” 运算符来检查变量是否存在。
函数内部定义的变量 “x”,在函数内部是可用的,函数外部是未定义。
- Globals()
globals() 函数会以字典类型返回当前位置的全部全局变量。
同样我们可以使用 “in” 运算符在检查变量是否存在全局命名空间中。
x = 123
if 'x' in globals():
print ('全局变量已经定义!')
else:
print ('全局环境中没有发现该变量!')
# 输出:
全局变量已经定义!
- hasattr()
hasattr() 函数用于判断对象是否包含对应的属性。可用于查看类中是否存在变量。
以下示例中,使用 hasattr() 检查 “name” 是否存在,如果存在,输出相应属性。hello 类中不存在 “age” 属性,输出 False。
class hello:
name = 'Li'
hello = hello()
if hasattr(hello, 'name'):
print(hello.name)
print(hasattr(hello, 'age'))
Li
False
?
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
?
相关推荐
- Python 可视化工具包(python常见的可视化工具)
-
喜欢用Python做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?本文将介绍一些常用的Python可视化包,包括这些包的优缺点以及分别适用于什么样的场景。这篇文章...
- Python的GPU编程实例——近邻表计算
-
目录技术背景...
- python算法体验-3.python实现欧式距离的三种方式
-
欧式距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。欧式距离源自N维欧氏空间中两点...
- python实现Lasso回归分析(特征筛选、建模预测)
-
实现功能:...
- python语言检测模块langid、langdetect使用
-
本文首发地址:https://blog.csdn.net/Together_CZ/article/details/86678423欢迎关注我的博客【Together_CZ】,我是沂水寒城!之前使用数据...
- 7天学会Python最佳可视化工具Seaborn(一):可视化变量间的关系
-
众所周知,Seaborn“可能”是Python下最友好、易用的可视化工具了,可视化效果也非常好。但是截止目前,并没有一份中文教程供广大国内Python使用者查阅学习。怎么能因为语言的问题,让大家错过这...
- 在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
-
各位读者好,在这篇文章中我们尝试使用sklearn库比较k-means聚类算法和主成分分析(PCA)在图像压缩上的实现和结果。压缩图像的效果通过占用的减少比例以及和原始图像的差异大小来评估。图像压...
- OpenCV-Python 相机校准 | 四十九
-
目标在本节中,我们将学习由相机引起的失真类型,如何找到相机的固有和非固有特性如何根据这些特性使图像不失真基础一些针孔相机会给图像带来明显的失真。两种主要的变形是径向变形和切向变形。径向变形会导致直线出...
- python数据预处理技术(python 数据预处理)
-
在真实世界中,经常需要处理大量的原始数据,这些原始数据是机器学习算法无法理解的。为了让机器学习算法理解原始数据,需要对数据进行预处理。我们运行anaconda集成环境下的“jupyternotebo...
- OpenCV-Python 特征匹配 | 四十四
-
目标在本章中,我们将看到如何将一个图像中的特征与其他图像进行匹配。我们将在OpenCV中使用Brute-Force匹配器和FLANN匹配器Brute-Force匹配器的基础蛮力匹配器很简单。它使用第一...
- 实战python中Random模块使用(python中的random模块)
-
一、random模块简介Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。要在Python中使用random模块,只需要...
- Python随机模块22个函数详解(python随机函数的应用)
-
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。平时数据分析各种分布的数据构造也会用到。random模块,用于生成伪随机数,之所以称之为伪随机数,是...
- 说冲A就冲A,这个宝藏男孩冯俊杰我pick了
-
爱奇艺新上架了一部网剧叫《最后一个女神》。有个惊人的发现,剧里男三居然是《青春有你》的训练生冯俊杰。剧组穷,戏服没几件,冯俊杰几乎靠一件背背佳撑起了整部剧。冯俊杰快速了解一下。四川人,来自觉醒东方,人...
- 唐山打人嫌犯陈继志去医院就医的背后,隐藏着三个精心设计的步骤
-
种种迹象表明,陈继志这帮人对处理打人之后的善后工作是轻车驾熟的,他们想实施的计划应该是这样的:首先第一步与伤者进同一家医院做伤情鉴定,鉴定级别最好要比对方严重,于是两位女伤者被鉴定为轻伤,他们就要求医...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Python 可视化工具包(python常见的可视化工具)
- Python的GPU编程实例——近邻表计算
- python算法体验-3.python实现欧式距离的三种方式
- python实现Lasso回归分析(特征筛选、建模预测)
- python语言检测模块langid、langdetect使用
- 7天学会Python最佳可视化工具Seaborn(一):可视化变量间的关系
- 在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
- OpenCV-Python 相机校准 | 四十九
- python数据预处理技术(python 数据预处理)
- 【Python可视化系列】一文教你绘制不同类型散点图(理论+源码)
- 标签列表
-
- r语言矩阵 (127)
- browsererror (114)
- exportexcel (119)
- cv2.bitwise_not (137)
- dump命令 (128)
- es6concat (126)
- heapify (127)
- java.security.egd (130)
- javax.annotation (117)
- jsstringsplit (117)
- js数字 (115)
- maven编译 (132)
- mysqlleft (128)
- nodejsbuffer (149)
- org.apache.commons.httpclient (126)
- org.jsoup (141)
- org.springframework.web (128)
- robotframework-ride (115)
- setnocounton (141)
- socket.gethostbyname (122)
- sqlmid (121)
- time.strptime (133)
- vscode格式化 (125)
- win32con (129)
- window.localstorage (126)