目录

1.类成员

2 实例成员的动态绑定

3. 系统魔术⽅法

3.1 __init__ 和 __new__

3.2 算数运算符重载

3.3 迭代器

3.4 __call__

4.单例设计模式

4.1、设计模式概述

4.2 单例

4.3 实现

面向对象练习题



1.类成员

类成员包括:类属性和类⽅法,不同于成员属性和成员⽅法属于对象,类属性和类⽅法属于类,可以不实例化对象,直接通过类名调⽤,这些类成员为所有对象共有,⼀般⽤于对象间通信。

  • 在程序运⾏期间类属性始终存在
  • 类属性

类⽅法和静态⽅法

  • 类⽅法属于类,为所有对象共有,可以通过类名或对象调⽤
  • 类⽅法可以⽤来访问类属性
  • 静态⽅法属于类的作⽤域内的全局函数
  • 类⽅法和静态⽅法的区别,类⽅法第⼀个参数是类对象,由系统传⼊,静态⽅法没有
  • 共同点:静态⽅法和类⽅法都可以通过类名直接调⽤,属于类,不属于对象

2 实例成员的动态绑定

实例的属性和⽅法都可以动态绑定,也就是可以在程序运⾏期间可以给程序增加功能,这对于那些静态语⾔来说⽆异于天⽅夜谭,但对python来说⼀切皆有可能

  • 给对象动态添加的属性只属于这个对象,其它对象没有该属性
  • 使⽤__ slots__限制属性的动态绑定:

3. 系统魔术⽅法

3.1 __init__ 和 __new__

  • __ new__ ⽤于创建⼀个对象,有返回值; __new__ 是类⽅法;__ init__ ⽤于初始化对象,没有返回值
  • __new__ 默认参数是cls,系统传递的是类名, __init__ 默认参数是self,系统传递的是当前对象
  • __ new__ 先于__ init__ 执⾏

3.2 算数运算符重载

在python中⾃定义类的对象也可以象系统类型⼀样完成+、 -、 *、 /、索引、切⽚等运算,这有赖于python类有运算符重载功能

3.3 迭代器

如果想让⼀个类⽤于for-in 循环则必须实现__ iter__ 和__ next__ ⽅法

3.4 __call__

如果⼀个类实现了 __call__(slef, [,*args [,**kwargs]]) ⽅法,则该类的对象可以象函数⼀样调⽤。它是实现类装饰器的基础

4.单例设计模式

4.1、设计模式概述

1. 概念:对特定问题的⼀种解决⽅案,和平台、语⾔⽆关
2. 作⽤

  • 更好的理解⾯向对象
  • 让你的代码更加优雅
  • 使你的代码更加容易扩展和复⽤
  • ⾯试时候的重点

设计模式的⼀些基本原则

  • ⾼内聚,低耦合
  • 单⼀职责
  • 开闭原则(对修改封闭、对扩展开放)

4.2 单例

所谓单例也就是⼀个类只⽣成⼀个对象,⽆论你实例化多少对象,都是同⼀个对象
应⽤场景:数据库操作类,⽂件操作类等,可以减少资源的占⽤

4.3 实现

使⽤ __new__

面向对象练习题

1.⾯向对象的三大特征是:封装、继承、多态
2.代码补齐:

3.代码改错,并说明原因

4.以下代码输出什么

5.代码改正:

6.代码补⻬

类成员_月隐学python第17课相关推荐

  1. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  2. 类和对象_月隐学python第15课

    目录 1 ⾯向对象的思想 2. 类和对象 2.1 类和对象的概念 2.2 类的定义​ 2.3 成员⽅法 2.4 对象的创建 2.5 成员属性 3 构造和析构 3.1 构造⽅法 3.2 析构⽅法 3.3 ...

  3. 继承_月隐学python第16课

    目录 1.封装 1.1 属性私有化 1.2 属性装饰器 1.3 成员⽅法私有化 2.继承 2.1 单继承 2.2 多继承(理解.了解) 3.类成员 作业 初级 中级 ⾯向对象三⼤特征:封装.继承.多态 ...

  4. 函数进阶_月隐学python第11课

    目录 1.函数类型 2. 匿名函数 3.传入函数(理解) 4.闭包 5.偏函数 6.变量的作用域 6.1 变量作用域的分类 6.2 变量作⽤域查找规则 6.3 全局变量和局部变量 6.4 global ...

  5. 列表_月隐学python第6课

    在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为有序序列,包括:列表.元组和字符串:其中列表的成员可修改,属于可变序列,字符串和元组,成员不可修改,属 ...

  6. 数据类型和运算符_月隐学python第3课

    1.类型判断 我们可以使⽤用type来返回数据类型和⽤用isinstance判断数据类型 2. 运算符和表达式 在数学上为了了计算结果,我们会写⼀一些式⼦子计算,例例如: 30 + 5 这是数学中的算 ...

  7. 异常处理_月隐学python第19课

    目录 1. 异常处理 1.1 try-except语句 1.3 抛出异常 1.4 异常嵌套 1.5 assert断⾔ 1.6 ⾃定义异常类 作业: 初级 中级 1. 异常处理 错误指的是代码有语法问题 ...

  8. 多态_月隐学python第18课

    目录 1.多态 2.其它 2.1 类的信息 2.2 对象信息 2.3 常⽤函数 1.多态 其他语⾔中所谓多态,指的是⼀个⽅法多种实现,在继承前提下,⽗类规定了⼦类的接⼝,使得可以相同的⽅式调⽤⼦类的⽅ ...

  9. 字典与集合_月隐学python第8课

    一.字典 字典属于无序列,元素存放无序,是通过哈希方式进行数据存取的,字典是一个可变容器,字典中保存一个的键值对: key : value.我们通过key来获取对应的值,很类似我们的汉语字典. 字典中 ...

最新文章

  1. CentOS下安装Telnet
  2. 从exp入手分析漏洞
  3. python numpy中stack(),hstack(),vstack()函数解释
  4. ios首次加载web_ios加载webview显示进度条OC版
  5. mysql创建表时遇到的问题_MySQL语言创建表时遇到了问题,请问我错在哪里了?...
  6. [bbk2908]第4集 - Chapter 03 - 介绍RAC的体系结构
  7. 微信小程序四(设置底部导航)
  8. 借条已经收回,他以没收据为由让我继续还款怎样办?
  9. 常用中文字体的Unicode编码
  10. 征集对智能视觉组eIQ的使用反馈
  11. android操作蓝牙打印机(上)
  12. markdown(Latex)连乘符号
  13. 华为GAUSSDB集成
  14. 十分钟清除西门子C65手机密码
  15. Python里的%s和%d是什么意思
  16. 华为的云计算转型:逼出来的开放
  17. A Knight's Journey
  18. 广州楼市:这种房产千万不要碰,再便宜也不要买!
  19. r7 7735h参数 r7 7735h性能怎么样 r7 7735h相当于什么水平
  20. 打印100-200以内的素数

热门文章

  1. OPA Quality Report in Jenkins Ben - 到哪里能看到我们的OPA Test在Jenkins Server上运行的情况
  2. where is argument in check callback passed by framework - SAP UI5学习笔记
  3. upload Fiori application to ABAP server via report /UI5/UI5_REPOSITORY_LOAD
  4. 从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀
  5. SAP CRM product customizing下载的第四个队列
  6. Jerry Wang的CRM中间件培训 Middleware
  7. Embedded web server initialization - jar file default-mimetypes.properties
  8. SAP CRM WebClient UI Sales Area的cancel处理
  9. how to find data source of F4 help in web client UI
  10. SAP ABAP实用技巧介绍系列之使用代码获得某个structure上的扩展字段