python每日学13:类代码编写基础

背景:今天继续学习《python学习手册》第27章《类代码编写基础》,今天学习内容为784——792页。

这章接着上一章《OOP:宏伟蓝图》继续讲类的一些概念,如果上一章是类的总体概览的话,那么这一章就深入类代码的写法了,但学是总括性的内容,没有到很细节的领域。

本章学到的东西:

一、类和模块主要有三个不同之处

但是类和模块不同,类还支持生成多个对象、命名空间继承以及运算符重载

这一章的内容也是从这三个不同展开的。

二、类也是一个对象

opp模型中有两种对象:类对象和实例对象,类对象提供默认行为,是实例对象的工厂。

类对象提供默认行为,实例对象是具体的元素

三、self指的由类创建的对象实例而不是指类

以前类中定义函数时,经常用到self,我一直理解为是类,通过这章的学习,我认识到self不应该指类,更准确的说是指类实例化的对象自己。

四、类通过继承进行定制

越深入层次的下端,软件就会变得越特定化。类和模块在这一上看也是有区别的,因为模块的属性存在于一个单一、扁平的命名空间中(该命名空间不接受定制化)

python调用实际的属性时会启动一个独立的搜索,并且是从树的顶端搜索的,因此,底层的属性和方法会覆盖高层的属性,这就是继承和重载的原理。

五、类是模块的属性

文中经常用到属性这个词,其实想想,属性这个词确实可以扩展下,变量可以是类的属性,方法当然也可以是类的属性,那么类当然也可以是模块的属性。
就像会说话是人的一项功能,但会说话也可以是人的一种属性。

因为这种概念,所以自然的,一个模块文件可以有多个以上的类。

相关推荐

  1. python每日13代码编写基础

    2024-01-10 16:54:03       28 阅读
  2. python每日14可以截获python运算符

    2024-01-10 16:54:03       35 阅读
  3. 基础python:20、网络编程

    2024-01-10 16:54:03       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-10 16:54:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-10 16:54:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-10 16:54:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-10 16:54:03       20 阅读

热门阅读

  1. rust嵌入式开发

    2024-01-10 16:54:03       31 阅读
  2. 【数据库原理】(20)查询优化概述

    2024-01-10 16:54:03       33 阅读
  3. 分类-递归

    2024-01-10 16:54:03       40 阅读
  4. ECMAScript 6

    2024-01-10 16:54:03       31 阅读
  5. c#,获取时间戳

    2024-01-10 16:54:03       41 阅读
  6. es6 定义变量 let 跟cosnt 区别

    2024-01-10 16:54:03       37 阅读
  7. .netcore 6 ioc注入的三种方式

    2024-01-10 16:54:03       34 阅读
  8. MinIO (五) .net core实现分片上传

    2024-01-10 16:54:03       27 阅读