Python 工匠:案例、技巧与工程实践
朱雷
蓝鲸工具 PaaS 平台负责人
502 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
时长 21:38
免费
课程目录
已完结/共 20 讲
时长 21:38
时长 33:20
时长 24:04
时长 29:57
时长 00:56
时长 00:39
时长 00:36
Python 工匠:案例、技巧与工程实践
15
15
1.0x
00:00/00:00
登录|注册

第 9 章 面向对象编程(1)

第 9 章 面向对象编程

Python 是一门支持多种编程风格的语言。面对同样的需求,不同的程序员会写出风格迥异的 Python 代码。一个习惯“过程式编程”的人,可能会用一大堆环环相扣的函数来解决问题。而一个擅长“面向对象编程”的人,可能会搞出数不清的类来完成任务。
虽然不同的编程风格各有优缺点,无法直接比较,但如今面向对象编程的流行度与接受度远超其他编程风格。
几乎所有现代编程语言都支持面向对象功能,但由于设计理念不同,不同编程语言所支持的面向对象有许多差异。比如接口(interface)是 Java 面向对象体系中非常重要的组成部分,而在 Python 里,你压根儿就找不到接口对象。
Python 语言在整体设计上深受面向对象思想的影响。你经常可以听到“在 Python 里,万物皆对象”这句话。这并不夸张,在 Python 中,最基础的浮点数也是一个对象:
>>> i = 1.3
>>> i.is_integer() ➊
False
❶ 调用浮点数对象的 is_integer() 方法
要创建自定义对象,你需要用 class 关键字来定义一个类:
class Duck:
def __init__(self, name):
self.name = name
def quack(self):
print(f"Quack! I'm !")
实例化一个 Duck 对象,并调用它的 .quack() 方法:
>>> donald = Duck('donald')
>>> donald.quack()
Quack! I'm donald!
为了区分,我们常把类里定义的函数称作方法。除了普通方法外,你还可以使用 @classmethod@staticmethod 等装饰器来定义特殊方法。在 9.1.2 节,我会介绍这部分内容。
Python 支持类之间的继承,你可以用继承来创建一个子类,并重写父类的一些方法:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了Python中的面向对象编程基础知识,包括类的定义、实例化、方法的定义与调用,以及类之间的继承关系。重点讲解了Python中类的常用知识,包括私有属性的“君子协定”和实例内容保存在字典中的细节。此外,还介绍了Python设计哲学中的“大家都是成年人了”,强调了Python的灵活性和期望程序员做正确事情的理念。另外,文章还介绍了类方法、静态方法和属性装饰器的使用,以及它们在面向对象编程中的作用。此外,还涉及了Python的鸭子类型编程风格,强调了直接判断对象是否具有需要的方法或属性的重要性。文章还探讨了鸭子类型编程风格的优点和局限性,以及抽象类对类型机制的影响,为读者提供了对Python面向对象编程更深入的理解。文章内容丰富,适合初学者快速了解和入门,同时也为有一定基础的读者提供了更深入的理解。此外,还介绍了多重继承与MRO算法,以及MRO与super()函数的关系,为读者提供了更全面的Python面向对象编程知识。文章还介绍了Mixin模式和元类,展示了它们在Python中的应用和作用,为读者提供了更多的编程思路和技术视角。文章内容丰富,适合技术人员深入学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 工匠:案例、技巧与工程实践》
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • Eason Lau
    又爱又恨的python
    2024-01-29归属地:辽宁
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部