菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python setattr() 函数

Python3 内置函数 Python3 内置函数


setattr() 是 Python 中用于设置对象属性的内置函数。

与直接使用点号(.)赋值不同,setattr() 允许你通过字符串动态地设置对象的属性。这在需要根据变量名来设置属性、或者处理未知属性时非常有用。

单词释义: setattrset attribute(设置属性)的缩写。


基本语法与参数

语法格式

setattr(obj, name, value)

参数说明

  • 参数 obj:
    • 类型: 任意对象
    • 描述: 要设置属性的对象。
  • 参数 name:
    • 类型: 字符串
    • 描述: 要设置的属性名(字符串形式)。
  • 参数 value:
    • 类型: 任意值
    • 描述: 要设置的值。

函数说明

  • 返回值: 无返回值(返回 None)。
  • 对应函数: 与 getattr() 函数配合使用,getattr 用于获取属性。

实例

示例 1:基础用法

实例

# 创建一个简单的类
class Person:
pass

# 创建对象
p = Person()

# 使用 setattr 设置属性
setattr(p, 'name', 'Tom')
setattr(p, 'age', 20)
setattr(p, 'city', 'Beijing')

# 验证属性已设置
print(p.name) # 输出: Tom
print(p.age) # 输出: 20
print(p.city) # 输出: Beijing

# 使用 getattr 获取属性
print(getattr(p, 'name')) # 输出: Tom

运行结果预期:

Tom
20
Beijing
Tom

代码解析:

  1. setattr(obj, 'name', 'Tom') 相当于 obj.name = 'Tom'
  2. 属性名以字符串形式传递,可以动态设置。
  3. 可以与 getattr() 配合使用。

示例 2:动态设置属性

实例

class Student:
pass

# 动态设置多个属性
student = Student()
fields = ['name', 'age', 'grade', 'school']
values = ['Lily', 18, 'A', 'MIT']

for field, value in zip(fields, values):
setattr(student, field, value)

# 打印所有属性
for field in fields:
print(f"{field}: {getattr(student, field)}")

# 设置不存在的属性
setattr(student, 'major', 'Computer Science')
print(student.major) # 输出: Computer Science

运行结果预期:

name: Lily
age: 18
grade: A
school: MIT
Computer Science

代码解析:

  • 可以通过循环动态设置多个属性。
  • setattr 可以为对象添加新的属性。
  • 这在处理配置文件或用户输入时很有用。

示例 3:与 __dict__ 配合

实例

# 查看对象的 __dict__
class Car:
def __init__(self):
self.brand = "Toyota"

car = Car()
print(car.__dict__) # 输出: {'brand': 'Toyota'}

# 使用 setattr 添加属性
setattr(car, 'model', 'Camry')
setattr(car, 'year', 2024)

print(car.__dict__) # 输出: {'brand': 'Toyota', 'model': 'Camry', 'year': 2024}

# 检查属性是否存在
if hasattr(car, 'brand'):
print(f"品牌: {getattr(car, 'brand')}")

运行结果预期:

{'brand': 'Toyota'}
{'brand': 'Toyota', 'model': 'Camry', 'year': 2024}
品牌: Toyota

setattr() 通常与 getattr()hasattr()delattr() 一起使用,构成完整的属性操作工具集。


Python3 内置函数 Python3 内置函数


AI 思考中...

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /