![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python 基础第八节
Python 基础第八节
我是小白呀
吾本布衣, 出自纽约, 四周大山. 箪瓢屡空, 环堵萧然, 不弊风日. 吾好读书, 滴水石穿, 笨鸟先飞, 求知不断, 方能立足. 不羡孔北海之座上客常满, 但求吾辈架上书常在. 涸辙遗鲋, 暮成枯, 人而无志, 与彼何殊. Self-study Computer Science. 愿为 open source 自效微力. 天高地阔,欲往观之.
因为啥也不会, 默默做一只小白
展开
-
Python 第八节 第十七课
[toc]设计模式_单例模式实现 单例模式 ( Singleton Pattern ) 的核心作用是确保一个类只有一个实例, 并且提供一个访问该实例的全局访问点. 单例模式只生成一个实例对象, 减少了对系统资源的开销. 当一个对象的产生需要比较多的资源, 如读取配置文件, 产生其他依赖对象时, 可以产生一个 "单例对象", 然后永久驻留内存中, 从而极大的低开销. 执行结果:执行结果:...原创 2020-10-07 05:07:41 · 788 阅读 · 2 评论 -
Python 第八节 第十六课
[toc]设计模式_工厂模式实现 设计模式是面向对象语言特有的内容, 是我们在面临某一类问题时候固定的做法, 设计模式有很多种, 比较流行的是: GOF ( Group of Four ) 23 种设计模式. 当然, 我们没有必要全部学习, 学习几个常用的即可. 对于初学者, 我们学习两个最常用的模式: 工厂模式和单例模式. 工厂模式实现了创建者和调用者的分离, 使用专门的工厂类将选择实现类, 创建对象进行统一的管理和控制.执行结果:...原创 2020-10-06 23:52:23 · 755 阅读 · 1 评论 -
Python 第八节 第十五课
[toc]组合 "is-a" 关系, 我们可以使用 "继承". 从而实现子类拥有的父类方法和属性. "is-a" 关系指的是类似这样的关系: 狗是动物, dog is animal. 狗类就应该继承动物类. "has-a" 关系, 我们可以使用 "组合", 也能实现一个类拥有另一个类的方法和属性. "has-a" 关系指的是这样的关系: 手机拥有 CPU. Mobile Phone has a CPU.执行结果:...原创 2020-10-06 23:34:54 · 709 阅读 · 0 评论 -
Python 第八节 第十四课
[toc]对象的浅拷贝和深拷贝变量的赋值操作 只是形成两个变量, 实际还是啥执行同一个对象.浅拷贝 Python 拷贝一般都是浅拷贝. 拷贝时, 对象包含的子对象内容不拷贝. 因此, 源对象和拷贝对象会引用同一个子对象.深拷贝 使用 copy 模块的 deepcopy 函数, 递归拷贝对象中包含的子对象. 源对象和拷贝对象所有的子对象也不同.执行结果:...原创 2020-10-06 12:32:49 · 749 阅读 · 0 评论 -
Python 第八节 第十三课
[toc]特殊属性Python 对象中包含了很多双下划线开始和结束的属性, 这些是特殊属性, 有特殊方法. 这里我们列出常见的特殊属性:obj.__dict__ 对象的属性字典obj.__class__ 对象所属的类class.__bases__ 类的基类元组 ( 多继承 )class.__base__ 类的基类class.__mro__ ...原创 2020-10-06 00:45:59 · 730 阅读 · 0 评论 -
Python 第八节 第十二课
[toc]特殊方法和运算符重载Python 的运算符实际上是通过调用对象的特殊方法实现的. 比如:执行结果:常见的特殊方法统计如下:__init__ 构造方法 对象创建: p = Person()__del__ 析构方法 对象回收 对象回收__repr__, __str__ 打印, 转换 ...原创 2020-10-05 23:55:46 · 837 阅读 · 0 评论 -
Python 第八节 第十一课
[toc]多态多态 ( polymorphism) 是指同一个方法调用由于对象不同可能会产生不同的行为. 在现实生活中, 我们有很多例子. 比如: 同样是调用人的休息方法, 张三的休息是睡觉, 李四的休息是玩游戏, 李翠花是敲代码. 同样是吃饭的方法, 中国人用筷子吃饭, 英国用刀叉吃饭, 印度人用手吃饭.关于多态要注意以下 2 点:1. 多态是方法的多态, 属性没有多态2. 多态的存在有 2 个必要条件: 继承, 方法重写.执行结果:...原创 2020-10-05 11:04:36 · 622 阅读 · 0 评论 -
Python 第八节 第十节
[toc]super() 获得父类定义在子类中. 如果想要获得父类的方法时, 我们可以通过 super() 来做.super() 代表父类的定义, 不是父类对象.执行结果:原创 2020-10-05 10:28:57 · 558 阅读 · 0 评论 -
Python 第八节 第九课
[toc]多重继承 Python 支持多重继承, 一个子类可以有多个 "直接父类". 这样, 就具备了 "多个父类" 的特点.但是由于, 这样会被 "类的整体层次" 搞的异常复杂, 尽量避免使用.MEO()Python 支持多继承, 如果父类中相同名字的方法, 在子类没有指定父类名时, 解释器将 "从左向右" 按顺序搜索.MRO ( Method Resolution Order ): 方法解析顺序. 我们可以通过 mro() 方法获得 "类的层次结构", 方法解析..原创 2020-10-05 08:46:32 · 615 阅读 · 0 评论 -
Python 第八节 第八课
[toc]重写 __str__() 方法 object 有一个 __str__() 方法, 用于返回一个对于 "对象的描述", 对于内置函数 str() 经常用于 print() 方法, 帮助我们查看对象信息. __str__() 可以重写.执行结果:原创 2020-10-05 06:44:57 · 652 阅读 · 0 评论 -
Python 第八节 第七课
[toc]查看类的继承层次结构通过类的方法 mro() 或者类的属性 __mor__ 可以输出这个类的继承层次结构.执行结果:object 根类object 类是所有类的父类, 因此所有的类都有 objerct 类的属性和方法. 我们显然有必要深入研究一下 object 类的结构. 对于我们继续深入学习 Python 很有好处.dir() 查看对象属性为了深入学习对象, 我们先学习内置函数 dir(), 他可以让我们方便的看到指定对象所有的属性.执行结果:.原创 2020-10-05 06:26:17 · 615 阅读 · 0 评论 -
Python 第八节 第六课
[toc]类成员的继承和重写1. 成员继承: 子类继承了父类除构造方法之外的所有成员.2. 方法重写: 子类可以重新定义父类中的方法, 这样就会覆盖父类的方法, 也称为 "重写".执行结果:原创 2020-10-05 03:22:02 · 593 阅读 · 0 评论 -
Python 第八节 第五课
[toc]继承 继承是面向对象程序设计的重要特征, 也是实现 "代码复用" 的重要手段. 如果一个新类继承自己一个设计好的类, 就直接具备了已有类的特征, 就大大降低了工作难度. 已有的类, 我们称为 "父类或者基类", 新的类, 我们称为 "子类或者派生类".语法格式Python 支持多重继承, 一个子类可以继承多个父类. 继承的语法格式如下: class 子类类名 ( 父类 1[, 父类 2, .....]): 类体如果在类定义中没有指定...原创 2020-10-05 02:36:50 · 644 阅读 · 0 评论 -
Python 第八节 第四课
[toc]面向对象三大特征Python 是面向对象的语言, 也支持面向对象编程的三大特征: 继承, 封装 ( 隐藏 ), 多态.封装 ( 隐藏 ) 隐藏对象的属性和实现细节, 值对外提供必要的方法. 相当于将 "细节封装起来", 只对外暴露 "相关调用方法". 通过前面学习的 "私有属性, 私有方法" 的方式, 实现 "封装". Python 追求简洁的语法, 没有严格的语法级别的 "访问控制符", 更多的是靠程序员自觉实现.继承 继承可以让子类具有父类的特性...原创 2020-10-05 01:58:48 · 591 阅读 · 0 评论 -
Python 第八节 第三课
[toc]@property 装饰器@property 可以将一个方法的调用方式变成 "属性调用". 下面是一个简单的示例, 让大家体会一下这种转变:执行结果:执行结果:原创 2020-10-05 01:48:12 · 534 阅读 · 0 评论 -
Python 第八节 第二课
[toc]私有属性和私有方法 ( 实现封装 )Python 对于类的成员没有严格的访问控制限制, 这与其他面向对象的语言有区别. 关于私有属性和私有方法, 有如下要点: 1. 通常我们约定, 两个下划线开头的属性是私有的 ( private ). 其他为公共的 ( public ). 2. 类内部可以访问私有属性 ( 方法 ) 3. 类外部不能直接访问私有属性 ( 方法 ) 4. 类外部可以通过 "_类名_私有属性 ( 方法 ) 名" 访问私有属性 ( 方法 ...原创 2020-10-04 13:56:40 · 642 阅读 · 0 评论 -
Python 第八节 第一课
[toc]方法没有重载在其他语言中, 可以定义多个重名的方法, 只要保证方法签名的唯一即可. 方法签名包含 3 个部分: 方法名, 参数数量, 参数类型.Python 中, 方法的参数没有类型 (调用时确定参数类型 ), 参数的也可以由可变参数控制. 因此, Python 中是没有方法的重载的. 定义一个方法即可有多种调用方式, 相当于实现了其他语言中的方法的重载.如果我们在类通中定义了多个重名的方法, 只有最后一个方法有效.建议: 不要使用重名方法 ! Python 中方法没有重载.原创 2020-10-04 13:04:42 · 671 阅读 · 0 评论