python中类的属性监控学习

简介: python中类的属性监控学习

知识回顾:



  • 继承内建类,形成一个自定义的功能强大的属于自己的类。
  • 学过的经典内建类:list、dict、str
  • 模仿列表的魔法方法:__getitem__、__setitem__、__delitem__、__lenitem__
  • 内建类使用:1、传入参数值,使用__init__方法初始化,初始化的时候往往传入多个参数。2、__new__的使用,这个魔法方法是在类的对象实例化前所会调用的方法。


一、传统的属性监控模式



提问:类中的传统属性我们是如何载入的呢?通过类的构造方法__init__来进行初始化属于类的属性。今天主要学习对类的属性的监控。通过以前的课程,我们学习过已经可以通过setter、getter来进行属性的读写。


传统意义上的属性监控案例:

class Fangkuang:

   def __init__(self):

       self.width=0

       self.height=0

   def setWidth(self,width):

       print("监控设置的width")

       self.width=width*100

   def getWidth(self):

       return self.width


fk=Fangkuang()

fk.setWidth(2)

print(fk.getWidth())


分析:

传统的属性监控缺陷:

1.一个属性成员要对象写三个方法去进行监控,那么如果我们有10个属性成员呢?

2.只能通过gettter和setter的方法来监控属性。

3.不能通过直接操作属性的方式监控。


二、采用property绑定的方式



好处:给我们提供直接操作属性的方式监控类中的属性,同时也可以通过del关键字使用的使用来监控删除属性的操作。定义结构:操作属性的自定义名称=property(绑定读取方法名,绑定设置方法名,绑定删除方法名)


三、总结强调



1.掌握传统属性的监控方式。

2.理解掌握property的方法来绑定需要的参数属性。


源代码:

class Fangkuang:
    def __init__(self):
        self.width=0
        self.height=0
    def setWidth(self,width):
        #print("监控设置的width")
        self.width=width*100
    def getWidth(self):
        return self.width
    def deleteWidth(self):
        print("清空width数据")
        self.width=0
    mywidth=property(getWidth,setWidth,deleteWidth)
fk=Fangkuang()
fk.mywidth=2
print(fk.mywidth)
del fk.mywidth
print(fk.mywidth)
相关文章
|
10天前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
74 5
|
17天前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
213 0
|
17天前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
74 1
|
17天前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
116 1
|
17天前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
119 0
|
3月前
|
存储 运维 监控
基于跳表数据结构的局域网上网记录监控时序查询优化算法研究与 Python 实现
本文探讨跳表(Skip List)在局域网上网记录监控中的应用,分析其在快速范围查询、去重与异常检测中的优势,并提供 Python 实现示例,为高效处理海量时序数据提供参考。
75 0
|
17天前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
85 3
|
17天前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(一):认识Python、Py解释器作用;编写第一个Python程序;Python中的基本数据结构
认识Python 前提安装好Python,这里使用3.13版本 如今Python作为变成姐最炙手可热的编程语言,它的使用途径涵盖绝大部分生活中需要的开发需要。 许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA都大量地使用Python。
297 1
|
29天前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
3月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
217 57

推荐镜像

更多