python setattr 函数

Python setattr函数 setattr()setattr()函数是Python中一个强大而灵活的工具,用于设置对象的属性值。通过本文,已经了解了setattr()函数的基本用法、实际应用场景和注意事项,并掌握了如何在实际编程中使用它。虽然setattr()函数具有很大的灵活性,但在使用时需要格外小心,以避免破坏代码的可读性和可维护性。希望本文能够帮助大家更好地理解和利用setattr()函数在Python中的应用。 阅读详情
setattr ( object, name, value )

This is the counterpart of getattr(). The arguments are an object, astring and an arbitrary value. The string may name an existing attribute or anew attribute. The function assigns the value to the attribute, provided theobject allows it. For example, setattr(x, 'foobar', 123) is equivalent tox.foobar = 123.

查阅 python lib reference manual 得到:

http://docs.python.org/2/library/functions.html?highlight=setattr#setattr


yocto bitbake python 脚本中有一段代码用到了这个函数:

class BBConfiguration(object):
    """
    Manages build options and configurations for one run
    """

    def __init__(self, options):
        for key, val in options.__dict__.items():
            setattr(self, key, val)
        self.pkgs_to_build = []

def main():
    parser = optparse.OptionParser(
        version = "BitBake Build Tool Core version %s, %%prog version %s" % (bb.__version__, __version__),
        usage = """%prog [options] [package ...]

Executes the specified task (default is 'build') for a given set of BitBake files.
It expects that BBFILES is defined, which is a space separated list of files to
be executed.  BBFILES does support wildcards.
Default BBFILES are the .bb files in the current directory.""")

    parser.add_option("-b", "--buildfile", help = "execute the task against this .bb file, rather than a package from BBFILES. Does not handle any dependencies.",
               action = "store", dest = "buildfile", default = None)

    parser.add_option("-k", "--continue", help = "continue as much as possible after an error. While the target that failed, and those that depend on it, cannot be remade, the other dependencies of these targets can be processed all the same.",
               action = "store_false", dest = "abort", default = True)

    parser.add_option("-a", "--tryaltconfigs", help = "continue with builds by trying to use alternative providers where possible.",
               action = "store_true", dest = "tryaltconfigs", default = False)

    parser.add_option("-f", "--force", help = "force run of specified cmd, regardless of stamp status",
               action = "store_true", dest = "force", default = False)

    parser.add_option("-c", "--cmd", help = "Specify task to execute. Note that this only executes the specified task for the providee and the packages it depends on, i.e. 'compile' does not implicitly call stage for the dependencies (IOW: use only if you know what you are doing). Depending on the base.bbclass a listtasks tasks is defined and will show available tasks",
               action = "store", dest = "cmd")

    parser.add_option("-C", "--clear-stamp", help = "Invalidate the stamp for the specified cmd such as 'compile' and run the default task for the specified target(s)",
                action = "store", dest = "invalidate_stamp")

    parser.add_option("-r", "--read", help = "read the specified file before bitbake.conf",
               action = "append", dest = "prefile", default = [])

    parser.add_option("-R", "--postread", help = "read the specified file after bitbake.conf",
                      action = "append", dest = "postfile", default = [])

    parser.add_option("-v", "--verbose", help = "output more chit-chat to the terminal",
               action = "store_true", dest = "verbose", default = False)

    parser.add_option("-D", "--debug", help = "Increase the debug level. You can specify this more than once.",
               action = "count", dest="debug", default = 0)

    parser.add_option("-n", "--dry-run", help = "don't execute, just go through the motions",
               action = "store_true", dest = "dry_run", default = False)

    parser.add_option("-S", "--dump-signatures", help = "don't execute, just dump out the signature construction information",
               action = "store_true", dest = "dump_signatures", default = False)

    parser.add_option("-p", "--parse-only", help = "quit after parsing the BB files (developers only)",
               action = "store_true", dest = "parse_only", default = False)

    parser.add_option("-s", "--show-versions", help = "show current and preferred versions of all recipes",
               action = "store_true", dest = "show_versions", default = False)

    parser.add_option("-e", "--environment", help = "show the global or per-package environment (this is what used to be bbread)",
               action = "store_true", dest = "show_environment", default = False)

    parser.add_option("-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax, and the pn-buildlist to show the build list",
                action = "store_true", dest = "dot_graph", default = False)

    parser.add_option("-I", "--ignore-deps", help = """Assume these dependencies don't exist and are already provided (equivalent to ASSUME_PROVIDED). Useful to make dependency graphs more appealing""",
                action = "append", dest = "extra_assume_provided", default = [])

    parser.add_option("-l", "--log-domains", help = """Show debug logging for the specified logging domains""",
                action = "append", dest = "debug_domains", default = [])

    parser.add_option("-P", "--profile", help = "profile the command and print a report",
               action = "store_true", dest = "profile", default = False)

    parser.add_option("-u", "--ui", help = "userinterface to use",
               action = "store", dest = "ui")

    parser.add_option("-t", "--servertype", help = "Choose which server to use, none, process or xmlrpc",
               action = "store", dest = "servertype")

    parser.add_option("", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not",
               action = "store_true", dest = "revisions_changed", default = False)

    parser.add_option("", "--server-only", help = "Run bitbake without UI,  the frontend can connect with bitbake server itself",
               action = "store_true", dest = "server_only", default = False)

    parser.add_option("-B", "--bind", help = "The name/address for the bitbake server to bind to",
               action = "store", dest = "bind", default = False)
    parser.add_option("", "--no-setscene", help = "Do not run any setscene tasks, forces builds",
               action = "store_true", dest = "nosetscene", default = False)
    options, args = parser.parse_args(sys.argv)

    configuration = BBConfiguration(options)
    configuration.pkgs_to_build.extend(args[1:])

其中:

+++++ qc test +++++ options: {'show_versions': False, 'force': False, 'verbose': False, 'buildfile': None, 'abort': True, 'revisions_changed': False, 'dry_run': False, 'postfile': [], 'servertype': None, 'server_only': False, 'dot_graph': False, 'profile': False, 'dump_signatures': False, 'show_environment': False, 'nosetscene': False, 'tryaltconfigs': False, 'debug_domains': [], 'invalidate_stamp': None, 'parse_only': False, 'prefile': [], 'bind': False, 'extra_assume_provided': [], 'cmd': 'listtasks', 'ui': None, 'debug': 0}
+++++ qc test +++++ args: ['/home/chenqiang/wrwork/poky/bitbake/bin//bitbake', 'linux-yocto']
+++++ qc test +++++ pkgs_to_build: ['linux-yocto']

【Python】Python内置的100函数6 是 的完美镜像。它允许我们使用字符串变量作为属性名来为一个对象设置或创建一个属性。这种在运行时“通过名字来赋值”的能力,是 Python 动态类型语言强大之处的核心体现,使得我们能够编写出能够响应外部数据和配置、动态调整自身结构的灵活代码。 的语法非常直观: : 你想要为其设置属性的目标对象。 : 一个字符串,表示你想要设置或创建的属性的名称。 : 你想要赋给该属性的值。这个值可以是任何 Python 对象。 没有返回值(或者说,它返回 )。它的主要作用是产生副作用——修改 的状态。 这行代码,在 阅读详情

相关推荐

Python 打包与发布陷阱:如何用 setuptools 和 PyInstaller 生成跨平台可执行文件?

使用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1207

python中setattr()函数用法详解

python中setattr()函数用法详解

IT之一小佬的博客 8778

PG-FP6编程器错误代码解析与高效排障实战指南

在嵌入式系统开发与量产烧录中,编程器是连接开发环境与目标硬件的重要桥梁。其工作原理是通过特定的通信协议(如UART、SWD)与微控制器(MCU)建立连接,完成程序代码的写入、擦除与校验。这项技术的核心价值在于确保固件能够准确、可靠地部署到硬件中,是产品从原型到量产的关键环节。在实际的工程实践中,尤其是在使用瑞萨(Renesas)PG-FP6这类编程器进行调试或批量生产时,工程师常会遇到各种通信失败、编程验证错误或电源异常等问题,这些问题往往以特定的错误代码形式呈现。深入理解这些错误代码背后的硬件连接、电源时

weixin_34387468的博客 581

Python `setattr` 函数详解:灵活设置对象属性的完整指南

在深入探讨Python中setattr函数的使用教程中,详细讲解了其基础概念、常见用例以及高级技巧。setattr作为一种强大的工具,为在运行时动态设置对象属性提供了灵活性,涵盖了动态设置单个属性、批量设置属性、动态创建属性等多个方面的用法。强调了避免滥用setattr的原则。保持代码的清晰度和可读性至关重要,需要谨慎使用动态属性,考虑属性验证和异常处理,并在必要时选择其他更清晰的替代方案。我们还介绍了使用property装饰器优化属性访问和动态添加方法的技巧,以及在动态设置属性时注意事项的细节。

涛哥聊Python 2249

CocosCreator 面试题(十五)Cocos Creator如何内置protobuf JS版本?

接着,它创建了一个 Player 对象,并使用 protobuf.js 提供的 API 对其进行序列化和反序列化操作。其中,name 和 level 是普通的字段,items 是一个 repeated 字段,表示它可以包含多个值。在 Cocos Creator 中使用 protobuf.js,我们需要先加载 .proto 文件,然后使用 protobuf.js 提供的 API 进行序列化和反序列化操作。JSON和XML是文本格式,更易于阅读和调试,而且在对人类友好的接口和数据交换上更为常见和广泛支持。

w风雨无阻w的专栏 2628

openEuler 22.03 安装及配置Gitlab容器

在 openEuler 22.03 上安装及配置Gitlab容器

轻步玉阶 3316

Python内置函数setattr()详解 基本用法 处理不存在的属性 处理只读属性 使用getattr()和hasattr()与setattr()协同工作——《跟老吕学Python编程》

setattr()是一个强大的内置函数,它允许你在运行时动态地设置对象的属性。然而,由于它可以绕过正常的属性访问控制(如只读属性),因此在使用时需要谨慎。在大多数情况下,直接访问和设置对象的属性(如)是更清晰、更安全的做法。但在某些特殊情况下,如动态属性设置或元编程,setattr()可能会非常有用。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《跟老吕学Python编程》《Python游戏开发实战讲解》《Python Web开发实战》《Python网络爬虫实战》

Python老吕的博客 1553

PlutoSDR驱动安装避坑指南:从设备管理器异常到MATLAB 2023b完美识别

本文是一份详细的PlutoSDR驱动安装与MATLAB 2023b集成排错指南。针对Windows系统下常见的设备管理器异常、驱动兼容性问题,提供了从旧驱动清理、手动指定驱动文件到USB连接稳定性排查的完整解决方案。重点阐述了如何通过离线安装硬件支持包,并利用MATLAB命令进行连接测试与射频信号验证,最终实现设备的完美识别与稳定调用。

weixin_29159441的博客 428

Python setattr()函数

描述: setattr()函数对应函数getattr()函数,用于设置属性值。参数是对象、字符串和任意值。字符串可以命名现有属性或新属性。如果对象允许,函数将值赋给属性。例如,setattr(x,'foobar',123)等同于x.foobar=123。 语法: setattr(object, name, value) 参数介绍: object --- 对象 name --- 字符串...

全村的希望的博客 5369

Sigrity System SI SerialLink模式进行Pcie3协议仿真分析操作指导-pcie3_client_single_pre

Sigrity System SI SerialLink模式提供了10个协议合规性检查工具模板,用户可以将根据实际应用替换模板中的SPICE文件,然后进行协议仿真分析,同时软件还提供了目标结果的模板MASK以及该协议需要检查的项目,通过协议分析视为满足设计要求,下面介绍pcie3_client_single_pre仿真分析,具体操作如下。Random(Rj):随机抖动,该抖动用高斯概率分布来描述,通常是由热噪声和其它随机噪声引起的,默认为1.24%UI RMS(平均值),即和标准值的偏差为1.24%UI。

weixin_54787054的博客 598

基于深度学习的三维重建算法——详解与实现

随着深度学习技术的迅猛发展,基于深度学习的三维重建算法在最近几年取得了显著的进展。而基于深度学习的三维重建算法通过利用深度神经网络,能够从大规模数据中学习到更准确、鲁棒的三维结构表示。本文综述了基于深度学习的三维重建算法,并给出了相应的源代码。随着深度学习技术的不断发展,我们相信基于深度学习的三维重建算法将会在未来得到更广泛的应用。实验结果表明,基于深度学习的三维重建算法在准确性和鲁棒性方面取得了显著的提升。以上是关于基于深度学习的三维重建算法的详细介绍与实现,希望对您有所帮助。

CyberGenius的博客 1228

python内置函数之setattr() 函数

文章目录setattr() 函数描述语法参数返回值实例 setattr() 函数 描述 setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。 语法 setattr() 语法: setattr(object, name, value) 参数 object – 对象。 name – 字符串,对象属性。 value – 属性值。 返回值 无 实例 以下实例展示了 setattr() 函数的使用方法: 对已存在的属性进行赋值: >>>class

Qiu先生的博客 5613

RISC-V CPU设计(三)---多周期CPU的设计与实现

基本情况 本多周期CPU支持RV32I指令集(fence,ecall,ebreak除外),已通过部分指令的测试,如代码有bug,欢迎指出。 模块划分 代码将CPU划分为以下几个模块: 1.控制单元:ControlUnit 用于产生控制信号,是CPU的大脑,指挥中枢。 2.分支决策单元:BranchUnit 用于决定B型指令是否发生跳转 3.立即数单元:ImmUnit 用于从指令中解析出立即数. 4.寄存器堆:RegisterFile RISC-V的32个寄存器,其中x0寄存器恒为0,不可更改。 5.指令存储

qq_40268672的博客 5542

Python:setattr()函数和__setattr__()魔术方法

setattr()是一个python内置的函数,用于设置一个对象的属性值,一般情况下,可以通过点运算符(.)完成相同的功能,但是getattr()拥有一个点运算符无法实现的功能,就是允许使用字符串(甚至字符串内容可以不是一个标识符)来表示属性名,从而可以在运行时动态地选择要设置的属性,这对于编写通用的代码或者处理动态数据结构很有用。

保持终身学习的能力,温故而知新 1255

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python setattr() 函数

Python setattr() 函数 Python 内置函数 描述 setattr()函数对应函数getattr(),用于设置属性值,该属性不一定是存在的。 语法 setattr() 语法: setattr(object, name, value) 参数 object -- 对象。 name -- 字符串,对象属性。 value -- 属性值。 返回值 ...

weixin_30700099的博客 192

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python setattr函数_Python内置函数(53)——setattr

英文文档:setattr(object,name,value)This is the counterpart ofgetattr(). The arguments are an object, a string and an arbitrary value. The string may name an existing attribute or a new attribute. The f...

weixin_28829903的博客 757

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python 内置函数 setattr()

内置函数 setattr 1、描述:setattr()函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。 2、语法:setattr(object, name, value) 3、参数: object --对象。 name --字符串,对象属性。 ...

weixin_38477351的博客 1929

Python 内置函数:setattr()

setattr() 是 Python 用于动态设置对象属性和方法的内置函数。它不仅可以添加新属性,也可以修改已有属性,还能动态绑定方法。在反射、配置管理和框架开发中,setattr() 提供了强大的灵活性,是 Python 动态特性的重要体现。setattr() 与 getattr()、hasattr()、delattr() 一起构成了 Python 的反射机制。setattr() 就是用于动态设置对象属性和方法的工具。在 Python 中,对象的属性既可以直接通过点号赋值,也可以在运行时动态添加或修改。

qq_41176800的博客 757

python的getattr和setattr_getattr函数和setattr函数

python内置的两个看起来很简单,一般也不怎么用得上的函数,getattr函数和setattr函数。getattr函数用于获取对象的某个属性的值,setattr函数用于设置对象的某个属性值。getattr函数获取对象的某个属性值,如果属性不存在,而且又没有提供default值,抛出AttributeError。以上代码首先用dir查看了10这个int对象的所有属性,然后获取bit_length属...

weixin_39637285的博客 2152

set函数python_python的setattr函数实例用法

现在小编已经学习语言程序良久,但是在了解以后,如果让小编再去学习语言要入手入口,一定是先从掌握函数开始了解,原因很简单,任何一个代码串都是有函数构成的,这就好比我们在打游戏的时候,先掌握“w”、“Q”键一样,这样才能灵活运用整个程序的良好运转。又给大家带来一个好用的函数——setattr。步骤1、描述setattr 函数对应函数 getatt(),用于设置属性值,该属性必须存在。步骤2、setat...

weixin_39942037的博客 349

Python-VBA函数之旅-setattr函数

setattr函数

ygb_1024的博客 1886

python中setattr用法_详解Python的hasattr() getattr() setattr() 函数使用方法

hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来>>> class test():... name="xiaohua"... def run(self):... return "HelloWord"...>&g...

weixin_39920415的博客 942

python中hasattr()、getattr()、setattr()函数的使用

原文地址:https://www.cnblogs.com/zanjiahaoge666/p/7475225.html 引言: 在阅读高手写的代码时,有很多简写的形式,如果没有见过还真的看不太懂是什么意思,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr()、getattr()、setattr()函数的使用也一并学习了一下; 正文: 1. hasattr...

liyanjie的博客 272

python 中setattr()函数

语法 setattr(object, name, value) 参数 object – 对象。 name – 字符串,对象属性。 value – 属性值。 返回值 无 例子 对已存在的属性进行赋值: >>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, 'bar') # 获取属性 bar 值 1 >>> setatt.

taylorman的博客 364
上一篇: C语言 打印文件名,行号,函数名
下一篇: autoconf & automake
windtakers
博客等级 码龄17年 94粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值