type
status
date
slug
summary
tags
category
icon
password
标签
是否汉化
📌
在最难熬最平凡的日子里,默默努力。总有一天,你会站在最闪亮的地方,活成自己曾经渴望的模样。
➡️
hasattr()getattr()setattr() 是用于处理对象属性和方法的内置 Python 函数。这些函数主要用于对象内省和动态属性操作。

hasattr(object, name)

  • hasattr() 是一个函数,用于检查对象是否具有给定名称的属性。
  • 它接受两个参数:object,是您要检查的对象,name,是要检查的属性的名称。
  • 如果对象中存在具有指定名称的属性,hasattr() 返回 True。如果属性不存在,则返回 False

getattr(object, name, default=None)

  • getattr() 是一个函数,用于从对象中检索属性的值。
  • 它接受三个参数:object,是您要从中检索属性的对象,name,是属性的名称,以及一个可选的 default 值,如果在对象中找不到属性,则返回该默认值。
  • 如果对象中存在具有指定名称的属性,getattr() 返回属性的值。如果属性不存在,并提供了默认值,则返回默认值。如果未提供默认值并且属性不存在,则引发 AttributeError

setattr(object, name, value)

  • setattr() 是一个函数,用于在对象中设置属性的值。
  • 它接受三个参数:object,是您要设置属性的对象,name,是属性的名称,以及 value,是要分配给属性的值。
  • 如果对象中存在具有指定名称的属性,setattr() 更新其值。如果属性不存在,则创建一个具有给定名称的新属性,并将提供的值分配给它。

使用场景

动态属性访问

  • 这些函数允许您在运行时动态地访问和处理对象的属性。这在编写通用代码、扩展模块或处理动态数据结构时非常有用。

配置文件和数据处理

  • 这些函数可以用于从配置文件或其他数据源中加载属性或配置信息。您可以根据属性名称,检查它们是否存在,获取它们的值,并将配置数据设置回对象。

插件系统

  • 在插件系统中,您可以使用这些函数来动态加载和管理插件。您可以根据插件名称检查是否存在,获取插件对象,然后根据需要设置属性。

数据序列化和反序列化

  • 这些函数对于将对象属性序列化为字典或 JSON 格式以进行持久化存储,并在需要时将其还原为对象非常有用。

数据库映射和ORM

  • 对象关系映射 (ORM) 框架通常使用这些函数来将数据库记录映射到对象属性。您可以使用 hasattr() 检查属性是否存在,使用 getattr() 获取属性值,然后使用 setattr() 更新属性值。

单元测试

  • 在单元测试中,这些函数可用于模拟对象行为。您可以创建虚拟对象,并使用这些函数检查、获取和设置属性,以测试不同的路径和条件。

API封装

  • 如果您构建了一个 API 包装器或客户端库,这些函数可以用于处理不同版本的 API,根据 API 的版本或配置动态地设置和获取属性。

动态创建对象

  • 您可以使用 setattr() 创建新属性,以便在运行时动态扩展对象的功能。这对于动态类构建非常有用。
 
总之,这些函数允许您以更灵活的方式处理对象的属性和行为,使其适用于各种动态和扩展性需求,例如在检查属性是否存在、获取其值或设置其值时使用。
 
 

🎒
离开乏味的皮囊,自由的灵魂在路上
  • Name: Alan Hsu
  • Tag: 随感、技术、经验、旅行、推荐、生活、音乐、电影 etc.
  • Email:xulanzhong521gmail.com
  • WeChat: Alan_Hsu_521
notion image
notion image
 
 
datetime 格式化字符串:strftime()收藏 | Love for Favorites
Loading...