动态设置和获取类实例变量(setattr、getattr)

动态设置和获取类实例变量

    • 写在前面的话
    • setattr 示例代码
    • getattr 示例代码:

写在前面的话

在pyqt5的界面设置中,有很多相同的Qlabel、Qpushbutton、Qslider的设置,这些具有相同属性的界面模块可能需要不同的触发方法,定义为self.label1、self.button1、self.button2、self.label2…显然是增加代码的冗余,这时候就需要使用本文的方法进行解决。

在这里插入图片描述

setattr 示例代码

将类的实例变量 self.aslider 的赋值方式变成变量的形式,可以使用 Python 的 setattr() 函数。这个函数可以在运行时动态地设置对象的属性。

slider_name = "aslider"
slider_value = slider  # 假设 slider 是一个值setattr(self, slider_name, slider_value)

首先定义了一个变量 slider_name,它存储要设置的属性的名称,这里是 “aslider”。然后,定义了一个变量 slider_value,它存储要赋给属性的值或者方法,这里是 slider,这是的pyqt5中的滑块条。

最后,使用 setattr() 函数将属性名和属性值动态地设置给了 self 对象。这将在 self 对象上创建一个名为 “aslider” 的实例变量,并将其设置为 slider滑块。

getattr 示例代码:

使用了变量的形式设置了 self.aslider 的值,并且想要通过变量的形式取出该值,可以使用 Python 的 getattr() 函数。这个函数可以在运行时动态地获取对象的属性值或者调用该方法。

slider_name = "aslider"
slider_value = getattr(self, slider_name)print(slider_value)

定义了一个变量 slider_name,它存储了要获取的属性的名称,这里是 “aslider”。然后,我们使用 getattr() 函数从 self 对象中获取名为 “aslider” 的属性值,并将其存储在 slider_value 变量中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/427918.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言:资金评估

代码示例 # 1. 导入数据 fund_data <- read.csv("D:/R语言/基金.csv", sep ,, header TRUE, na.strings "--") fund_data <- fund_data[-1] fund_data[is.na(fund_data)] <- 0# 2. Z-score标准化函数 standardize <- function(x) {return…

树的学习day01

树的理解 树是一种递归形式的调用 树是由于多个结点组成的有限集合T 树中有且仅有一个结点称为根 当结点大于1的时候&#xff0c;往往其余的结点为m个互不相交的有限个集合T1,…,Tm&#xff0c;每个互不相交的有限集合本身右是一棵树&#xff0c;称为这个根的子树 空树也是树 关…

国标GB28181协议EasyCVR启动失败报错“Local Machine Check Error”的解决方法

国标GB28181安防监控系统EasyCVR平台采用了开放式的网络结构&#xff0c;可支持4G、5G、WiFi、有线等方式进行视频的接入与传输、处理和分发。安防视频监控平台EasyCVR还能支持GIS电子地图模式&#xff0c;基于监控摄像头的经纬度地理位置信息&#xff0c;将场景中的整体安防布…

git 对象压缩及垃圾对象清理

git 对象压缩及垃圾对象清理 这篇文章让我们来看看 git 的对象压缩机制&#xff0c;前面的几篇文章我们提到&#xff0c;在执行 git add 命令会会把文件先通过 zlib 压缩后放入到「暂存区」&#xff0c;我们先看看这个步骤&#xff1a; 我们这个实例中有一个 1.28m 的 index.…

CPU运行过程

取指令阶段&#xff08;①②③&#xff09;&#xff1a;①②过程指令地址寄存器&#xff08;INSTUCTION ADDRESS REGISTER&#xff09;从0地址或指定地址开始读存入RAM中的程序&#xff0c;③过程将读出的数据复制到指令寄存器&#xff08;INSTRUCTION REGISTER&#xff09;中。…

民用激光雷达行业简析

01. 激光雷达是“机器之眼” • 激光雷达是一个通过发射激光并接受发射激光同时对其进行信号处理&#xff0c;从而获得周边物体距离等信息的主动测量装置。 • 激光雷达主要由光发射、光扫描、光接收三大模块组成。光发射模块集成了驱动、开关和光源等芯片。光接收模块集成了…

Linux设备树中的 gpio 信息

一. 简介 前面几篇文章讲解了 pinctrl 子系统&#xff0c; pinctrl 子系统重点是设置 PIN( 有的 SOC 叫做 PAD) 的复用 和电气属性。 注意&#xff1a;如果 pinctrl 子系统将一个 PIN 复用为 GPIO 的话&#xff0c;那么接下来就要用到 gpio 子系统了。如果 PIN用作其他…

【SD】sadtalk

下载地址&#xff1a; 123&#xff1a;https://www.123pan.com/s/VzULVv-0OXX.html 提取码:3KhD 百度&#xff1a; https://pan.baidu.com/share/init?surlRB9oTmlbIV0pg1Th-Tdd4Q 提取码: uk87 效果不是很好&#xff0c;适合小图片。推荐&#xff1a;heygen 参考设置&…

Gold-YOLO(NeurIPS 2023)论文与代码解析

paper&#xff1a;Gold-YOLO: Efficient Object Detector via Gather-and-Distribute Mechanism official implementation&#xff1a;https://github.com/huawei-noah/Efficient-Computing/tree/master/Detection/Gold-YOLO 存在的问题 在过去几年里&#xff0c;YOLO系列已经…

【教学类-综合练习-08】20240105 大3班 综合材料(美术类:骰子、面具、AB手环)

背景需求 年终了&#xff0c;清理库存&#xff0c;各种打印的题型纸都拿出来&#xff0c;当个别化学习材料 教学过程&#xff1a; 时间&#xff1a;2024年1月2日上午 班级&#xff1a;大3班&#xff08;2周才去一次&#xff09; 人数&#xff1a;17人

leetcode刷题(剑指offer) 240.搜索二维矩阵Ⅱ

240.搜索二维矩阵Ⅱ 编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,…

达梦数据库增删改查常用操作及-2723: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值问题修复

创建表 CREATE TABLE DICT ( "ID" INT IDENTITY(1, 1) NOT NULL, "TYPE" VARCHAR(30), "CODE" BIGINT, "NAME" VARCHAR(300), "VALUE" VARCHAR(200), "DESCRIPTION" VARCHAR(255), "OPERATOR"…