继续上一章的内容,上一章说到了python的核心部分-创建对象的各种名词的定义,包括:对象,类,多态,封装,继承,接口和内省,面向对象设计。还有不清楚的可以review一下前文。python核心部分创建对象中各种名词的定义及用法

如果你对自己要求不高,觉得学习python为了简单的处理一下文字而已那就可以停止了,但是既然选择了开始学习,那么为什么不坚持到底呢?给自己的人生多一种选择。

今天我们要说的内容是类与类型。文章较长,仔细看吧

零碎重点:

1. 首先举个例子帮你理解一下类。 百灵鸟类就是鸟类的一个子类,而鸟类就是百灵鸟类的超类。

2. PS:python中类习惯上使用单数名词,并且首字母大写。

3. 类的实例:所有对象都属于某一个类,而这就是类的实例。

一张简单的草图可以快速帮你理解他们之间的关系

创建自己的类:

以代码来解释如何创建以及注意事项。

代码的解释和注意事项:

Person: 类的名字,class语句会在函数定义地方创建自己的命名空间。

在新式类语法中,需要在模块或者脚本开始的地方防止赋值语句:_metaclass_ = type 。

代码中直接调用类的部分就是指的类的实例。

代码快速理解:

把类比作图纸,类的实例化对象是真正可以居住的房子。一个图纸可以设计出成千上万的房子,长得都差不多。但是它们都可以由不同的主人,self相当于每个房子的门牌号,由self就可以轻松找到家。

self: 变量的对象自身,对自己的引用。self参数实际上正是方法和函数的区别。

问题延伸:

怎么让方法和特性便的私有(从外部无法访问)?

在定义它的名字前面加上双下划线__。

eg : def __inaceessible(self):

漏洞:其实可以访问的,你可以理解为前面加上单下划线的类名格式形式。

指定超类(超类也叫做父类,基类,超类)

用法:将其他类名写在class语句后的圆括号内指定超类

解释:Filter是一个用于过滤序列的通用类,Filter类的用处在于它可以用作其他类的超类,比如SPAMFilter类,可以将序列中的'SPAM'过滤出去。

多个超类:

代码涉及到了多重继承,是非常有用的,但是尽量少用。

类的特性与函数,方法:(这一块我们全部用上文中指定超类的代码为例子)

issubclass函数: 查看一个类是不是另外一个的子类。

>>> issubclass(SPAMFilter,Filter)

True

>>> issubclass(Filter,SPAMFilter)

False

__bases__特性:查看已知类的超类(们)。

__dict__特性:查看对象中所有存储的值。

>>> SPAMFilter.__bases__

(,)

>>> Filter.__bases__

()

isinstance方法:检查一个对象是否是一个类的实例。

>>> s=SPAMFilter()

>>> isinstance(s,SPAMFilter)

True

>>> isinstance(s,Filter)

True

>>> isinstance(s,strs)

False

__class__特性:查看一个对象属于哪个类。

>>> s.__class__

hasattr:检查所需的方法是否存在。

callable(x):检查所需的方法是否可调用。在新的python用中hasattr(x,'__call__')代替。

有关python方面的论文_一篇文章可以带你理解python中的类相关推荐

  1. java中抽象接口_一篇文章让你彻底理解java中抽象类和接口

    相信大家都有这种感觉:抽象类与接口这两者有太多相似的地方,又有太多不同的地方.往往这二者可以让初学者摸不着头脑,无论是在实际编程的时候,还是在面试的时候,抽象类与接口都显得格外重要!希望看完这篇博客文 ...

  2. Java异常捕获论文_一篇文章解决Java异常处理

    前言 与异常相关的内容其实很早就想写了,但由于各种原因(懒)拖到了现在.在大二开学前夜(今天是8.31)完成这篇博客,也算完成了暑期生活的一个小心愿. 以下内容大多总结自<Java核心技术 卷Ⅰ ...

  3. python查看数据大小_科多大数据带你看Python可以列为最值得学习的编程语言

    原标题:科多大数据带你看Python可以列为最值得学习的编程语言 不知道从什么时候开始,这句话开始流行.不过也从侧面反映出 Python 语言的特点:简单.高效. 从近期代表技术趋势的业界报告以及编程 ...

  4. python爱心代码动态_一篇文章教你用python画动态爱心表白

    hRf免费资源网 初级画心hRf免费资源网 学Python,感觉你们的都好复杂,那我来个简单的,我是直接把心形看作是一个正方形+两个半圆:hRf免费资源网 hRf免费资源网 于是这就很简单了,十行代码 ...

  5. python 提取网页正文_一篇文章教会你用Python爬取淘宝海量信息,把淘宝商品整理成一个表格...

    最近看了爬虫又新做了个小作品,来瞅瞅吧~~~ 正文开始 因为最近想买ipad,所以想要尝试一下吧 淘宝 上所有ipad商品做一个统计,把所有ipad商品的信息集合到一个excel里,那么使用爬虫这个程 ...

  6. python的代码块使用什么控制类、函数以及其他逻辑判断_一篇文章教会你什么是Python模仿强类型...

    前言 Hi,各位小伙伴,你们好,今天我们来说一个Python未来趋势的并且一个好玩的东西. 我们可能多多少少都听过一句话,动态一时爽,重构火葬场.从生产角度出发,Python确实是一门很优秀的语言,但 ...

  7. c枚举类型enum例题_一篇文章让你详细了解Java中Enum枚举类的使用

    文章前记 程序员工作久了便可能整日忙碌于"增删改查"中,迷失方向,毫无进步. 该公众号致力于分享软件开发相关的原创干货,助你完成从程序员到架构师的进阶之路! 努力!做一个NB的Co ...

  8. go 调用其他文件函数_一篇文章让你了解Go语言中方法Methods的使用内幕

    概述 Go语言中的方法只不过是一个带有接收器的函数.接收器是某个特定类型(如struct)的实例,或是任何其他自定义类型的实例.所以基本上,当你把函数附加到类型上时,该函数就成为这个类型的一个方法.方 ...

  9. matlab基于dct的图像压缩编码解码_一篇文章搞定DCT在JPEG中的本质

    前序傅立叶变换,离散傅立叶变换,推荐这个回答的介绍 想和大家讨论一下jpeg中的dct变换,为什么有效?它有什么更深层次的本质吗?​www.zhihu.com 全篇参考下文,英文较好可以直接看. uc ...

最新文章

  1. oracle多表查询
  2. 【题解】 SP5973 SELTEAM - Selecting Teams
  3. python 批量读取文件夹的动漫美女图并显示
  4. 关闭或开启memory_target
  5. 从JVM入手,聊聊Java的学习和复习!
  6. Windows Phone 7 定义和使用字典资源(ResourceDictionary)
  7. Android中通过ActionBar为标题栏添加搜索以及分享视窗
  8. PhoneGap插件开发实例
  9. 剑指offer——面试题55:字符流中第一个不重复的字符
  10. selenium弹窗无法定位_Selenium异常集锦
  11. python粒子群喷发_python3实现单目标粒子群算法
  12. GG修改服务器迷你世界,gg修改器脚本大全迷你世界设置回点
  13. mysql缓存一致性,缓存与数据库一致性保证
  14. 这几天来的第一篇日志
  15. 使用函数输出指定范围内的Fibonacci数
  16. 量子计算机每次秒可达多少次,激光脉冲让运算速度提升百万倍 量子计算机有望实现室温运行...
  17. 工业和信息化部关于开展纵深推进APP侵害用户权益专项整治行动的通知(工信部信管函〔2020〕164号)
  18. 劲牌连续两年问鼎全国质量大奖背后的密码
  19. Linux学习(三):管道相关命令
  20. linux系统32和64的区别,32位和64位的Linux系统区别

热门文章

  1. mysql存储引擎简介
  2. ZooKeeper、Eureka谁是最好的注册中心?
  3. Spark _14_SparkShell的使用
  4. leetcode 215. Kth Largest Element in an Array | 215. 数组中的第K个最大元素(Java)
  5. MySQL事务及锁机制大揭秘 - 公开课笔记
  6. 【Servlet】request对象获取请求头数据和用户数据
  7. JVM系列之:JIT中的Virtual Call
  8. datastage 函数_DataStage_Transformer常用函数
  9. kotlin学习之集合(十三)
  10. AbstractByteBuf源码分析