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

getattr()内置函数

getattr() 是 Python 的一个内置函数,用于动态地获取对象的属性或方法。可以通过字符串的形式获取对象的某个属性或方法,而不用显式地访问它。这在处理属性名动态变化时非常有用。

基本语法:

getattr(object, name[, default])
  • object:要获取属性的对象。
  • name:属性或方法的名称,作为字符串传递。
  • default(可选):如果属性不存在,可以返回一个默认值。

如果属性存在,getattr() 会返回对应的属性值;如果不存在且提供了 default,则返回 default;如果 default 未提供且属性不存在,则会引发 AttributeError

示例:

class MyClass:def __init__(self):self.attr1 = 10self.attr2 = 20# 创建对象
obj = MyClass()# 使用 getattr 获取属性
value = getattr(obj, 'attr1')  # 获取属性 attr1
print(value)  # 输出: 10# 使用 getattr 获取不存在的属性,提供默认值
value = getattr(obj, 'attr3', 'Default Value')
print(value)  # 输出: Default Value# 如果没有默认值且属性不存在,则会报错
# value = getattr(obj, 'attr3')  # 这行会抛出 AttributeError

在代码中的应用:

layer = getattr(self.model, f'layer{layer_index + 1}')

这里 getattr() 用于动态获取模型中的某一层。f'layer{layer_index + 1}' 是一个格式化字符串,根据 layer_index 的值拼接得到层的名字(例如 layer1layer2 等)。通过 getattr(),可以在训练时根据不同的 layer_index 动态获取模型的不同层。


http://www.mrgr.cn/news/44602.html

相关文章:

  • 【操作系统考研】2进程管理(1)
  • 看诊新助手,语音转文字技术,让病历记录更贴心
  • c++和c语言的区别
  • OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(上)
  • 国标GBT28181详解:第三方呼叫控制的实时视音频点播流程详解(国标GB/T28181-2022 )
  • MySQL多表查询:标量子查询
  • 强化-微分
  • 面向对象编程【JavaScript】
  • 基于PHP的校园二手书交易管理系统
  • 计算机毕业设计 基于Python的豆果美食推荐系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • 每日英语听力 Day13
  • 备战大数据比赛:个人经验与实战技巧分享
  • LeetCode题练习与总结:移动零--283
  • 二维数组的旋转与翻转(C++)(上(这只是简单讲解))
  • 开源项目带来的思考
  • 修改 MySQL 数据库中的唯一键
  • Oracle登录报错-ORA-01017: invalid username/password;logon denied
  • 推荐一款强大的书签管理工具,让你的网址不在落灰
  • 汉诺塔问题
  • 2.4Mybatis——缓存机制