当前位置: 首页 > article >正文

python getattr() setattr() hasattr() delattr()内置函数详解

python getattr() setattr() hasattr() delattr()内置函数详解

1.getattr(object, name[, default]):

功能:获取对象的属性值。
参数:
object:要获取属性的对象。
name:属性的名称。
default(可选):如果属性不存在,则返回的默认值。
返回值:返回属性的值,如果属性不存在且没有指定默认值,则会引发 AttributeError 异常。

2.setattr(object, name, value):

功能:设置对象的属性值。
参数:
object:要设置属性的对象。
name:属性的名称。
value:属性的值。
返回值:无。

3.hasattr(object, name):

功能:检查对象是否拥有指定的属性。
参数:
object:要检查的对象。
name:属性的名称。
返回值:如果对象拥有指定属性,则返回 True,否则返回 False。

4.delattr(object, name):

功能:删除对象的指定属性。
参数:
object:要删除属性的对象。
name:属性的名称。
返回值:无。
这些内置函数对于动态操作对象的属性非常有用。例如,可以使用 getattr() 和 setattr() 来动态访问和修改对象的属性,而 hasattr() 和 delattr() 可用于检查属性是否存在并删除属性。

以下是示例代码,演示了这些函数的用法:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person("Alice", 25)

# 获取属性值
name = getattr(person, "name")
print(name)  # 输出: Alice

# 设置属性值
setattr(person, "age", 30)
print(person.age)  # 输出: 30

# 检查属性是否存在
has_name = hasattr(person, "name")
print(has_name)  # 输出: True

has_address = hasattr(person, "address")
print(has_address)  # 输出: False

# 删除属性
delattr(person, "age")
print(person.age)  # 引发 AttributeError 异常

http://www.kler.cn/a/150072.html

相关文章:

  • 【C++】——多态
  • Pycharm,2024最新版Pycharm下载安装配置教程!
  • top-k类问题
  • 【深度学习】— 多输入多输出通道、多通道输入的卷积、多输出通道、1×1 卷积层、汇聚层、多通道汇聚层
  • javascript实现sha512和sha384算法(支持微信小程序),可分多次计算
  • 3242. 设计相邻元素求和服务
  • 智慧博物馆视频监控系统设计,可视化AI智能分析技术助力博物馆多维度监管
  • SparkContext初始化
  • 错误 LNK2001 无法解析的外部符号 __imp__CrtDbgReport
  • 短 URL 生成器设计:百亿短 URL 怎样做到无冲突?
  • 2023.11.28 MyBatis 中 #{} 和 ${} 的区别
  • 【ZEDSLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试
  • 离散化笔记
  • 在与客户打交道过程中为什么客户不信任你?
  • 阿里云语雀频繁崩溃,有什么文档管理工具是比较稳定的?
  • 在虚拟机搭建nignx,和使用本地访问nginx的情况
  • viple模拟器使用(三):unity模拟器中实现沿右墙迷宫算法
  • C/C++ Zlib实现文件压缩与解压
  • 集合的使用
  • leetcode:随机链表的复制
  • 【Python】获取ip
  • NTT 的各类优化:Harvey、PtNTT,Intel AVX2、ARM Neon、GPGPU
  • oracle的sysaux使用量排查sql
  • 【ChatGLM3-6B】Docker下部署及微调
  • 6.golang函数
  • C语言变量和常量