面向对象高级特性及魔术方法

本文深入探讨面向对象编程的高级特性,包括类属性与实例属性的区别,类方法与静态方法的应用,Property类属性的使用,以及单例模式的实现与重要性。同时,文章还介绍了Python中的魔术方法,如特殊属性、创建与销毁、类型转换等,帮助读者全面理解面向对象编程的精髓。
部署运行你感兴趣的模型镜像

面向对象高级特性
1.类属性与类方法
2.类方法与静态方法
3.Property类属性
4.单例模式
1.类属性与实例属性
类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本。
实例属性(对象属性)不被所有类对象的实例对象所共有,在内存中的副本个数取决于对象个数。
2. 类方法与静态方法
类方法是类对象所拥有的方法,需要用修饰器一般以@classmethod来标识其为类方法
1). 对于类方法,第一个参数必须是类对象,作为第一个参数
(cls是形参, 可以修改为其它变量名,但最好用’cls’了)
2). 能够通过实例对象和类对象去访问。
静态方法需要用修饰器一般以@staticmethod来标识其为静态方法
1). 静态方法不需要多定义参数
2). 能够通过实例对象和类对象去访问

3.Property类属性

  1. 单例模式
    必要性:对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。
    如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状态。因此有时确保系统中某个对象的唯一性即一个类只能有一个实例非常重要

如何实例化一个单例?

在这里插入图片描述
装饰器(decorator)可以动态地修改一个类或函数的功能。这里,我们也可以使用装饰器来装饰某个类,使其只能生成一个实例,代码如下:

在这里插入图片描述魔术方法:
魔术方法:
1.特殊属性
2.创建、初始化与销毁
3.可视化
4.类型转换
5.索引与切片
6.重复、连接与成员操作符
1.特殊属性:
1.name 类、函数、方法等的名字
2.module 类定义所在的模块
3.class 对象或类所属的类
4.bases 当前类的基类(父类)
5.doc 类、函数的文档帮助,没有就定义为None
6.mro Method Resolution Order方法解析顺序
7.dict 类或实例的属性,可写的字典

查看属性
dir 返回类或者对象的所有成员名称列表,dir()函数就是调用__dir__()
1). 如果dir([obj]) 参数obj包含方法 dir(),该方法将被调用。
2). 如果Obj 不包含 dir(),该方法将最大限度收集属性信息

dir(obj) 对于不同类型的对象obj具有不同的行为:
1.如果对象是模块对象,返回的列表包含模块的属性名和变量名
2.如果对象是类型或者类对象,返回的列表包含类的属性名,及它的基类的属性名
3.如果obj不写 即dir(),返回列表包含内容不同

  • 在模块中,返回模块的属性和变量名
  • 在函数中,返回本地作用域的变量名
  • 在方法中,返回本地作用域的变量名
    2.创建,初始化与销毁
    面试题:python 中__new__ , init , del__的区别?
    1). new的功能是在生成对象之前所做的动作,接受的参数是cls 类, 负责对象的创建
    2). init是在对象生成之后完善对象的属性 它接受的是self 对象, 负责对象的初始化
    3). 对象生成是在 new 里面 return (返回一个对象)
    3.可视化
    类型判断要使用type或isinstance, 不能通过判断print输出是否带引号来判断输出值的类型。
    1). str()与repr()都是python中的内置函数,是直接用来格式化字符串的函数
    2). 而__str__与__repr
    是在类(对象)中对类(对象)本身进行字符串处理。

str: 返回一个可以用来表示对象的可打印的友好的字符串
1).对字符串,返回本身。
2).没有参数,则返回空字符串
3).对类,可通过__str__() 成员控制其行为。该成员不存在,则使用其 repr() 成员

4.类型转换
在这里插入图片描述5.索引与切片
在这里插入图片描述在这里插入图片描述在这里插入图片描述6.重复、连接与成员操作符
在这里插入图片描述
函数实例化进行相关属性验证:
在这里插入图片描述7.循环
在这里插入图片描述
在这里插入图片描述
8.with语句安全上下文
在这里插入图片描述**
在这里插入图片描述
魔术方法汇总:**

1.基本的魔法方法2.有关属性的魔术方法
3.比较操作符4.算数运算符
5.反运算6.增量赋值运算
7.一元操作符8.类型转换
9.上下文管理(with 语句)10.容器类型

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

源码地址: https://pan.quark.cn/s/a4b39357ea24 欧姆龙触摸屏编程软件MPTST 5.02是专门为欧姆龙品牌的工业触摸屏而研发的编程解决方案,它赋予用户在直观界面上构建、修改以及排错触摸屏应用程序的能力。 该软件在工业自动化领域具有不可替代的地位,特别是在生产线监视、设备操控以及人机互动系统中发挥着核心作用。 欧姆龙MPTST(Machine Process Terminal Software Touch)5.02版本配备了多样化的功能,旨在应对不同种类的触摸屏目要求。 以下列举了若干核心特性:1. **图形化编程**:MPTST 5.02采用图形化的编程模式,允许用户借助拖拽动作来设计屏幕布局,设定按钮、滑块、指示灯等组件,显著简化了编程流程,并提升了工作效率。 2. **兼容性**:该软件能够适配欧姆龙的多个触摸屏产品线,包括CX-One、NS系列、NJ/NX系列等,使用户可以在同一个平台上完成对不同硬件的编程任务。 3. **数据通信**:MPTST 5.02具备与PLC(可编程逻辑控制器)进行数据交互的能力,通过将触摸屏作为操作界面,实现生产数据的显示与输入,以及设备状态的监控。 4. **报警与事件管理**:软件中集成了报警和事件管理机制,可以设定多种报警标准,一旦达到预设条件,触摸屏便会展示对应的报警提示,助力操作人员迅速做出响应。 5. **模拟测试**:在设备实际连接之前,MPTST 5.02支持用户进行脱机模拟测试,以此验证程序的正确性与稳定性。 6. **目备份与恢复**:为了防止数据遗失,MPTST 5.02提供了目文件的备份及还原功能,对于多版本控制与团队协作具有显著价值。 7. **多语言支持**:针对全球化的应...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值