【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

python从2.7版本更新到现在,新特性一直在增加,不过我还是建议大家在开发中尽量用一些基础的功能就可以了。一来基础的功能比较容易掌握,二来可以照顾到所有的同学,毕竟不同人对python理解是不一样的。

类的数据

1、super class保存的数据
2、sub class数据
3、全局数据
4、函数入口参数的数据

类的基本应用

在面试过程中,关于class这一方面,问的最多就是类的特性是什么?这个问题不难,一般同学们都能回答出来,继承、封装、多态。可是在真实的场景中怎么使用,这却是一个不太容易回答的问题。我们可以从类的基本使用慢慢说来,

 class A(object):def __init__(self, a):self.a = adef process(self):print self.a

上面代码是一个基本的情形,有变量,有函数。假设,这个时候,出现了B。B不仅包括了A的全部特征,还有一些自己的数据和行为,这个时候应该怎么修改呢?其实很简单,就是继承一下A。

 class B(A):def __init__(self, a, b):A.__init__(self, a)self.b = bdef action(self):print self.b

类的复杂应用

前面说的情况都是一般的情况。那么,下面我们可以说一些额外的情况。假设B和A的情况是一样的,但是就是process操作不一样,这个时候应该怎么办呢?

class B(A):def __init__(self, a):A.__init__(self, a)def process(self):print 'data'

如果说类的基本应用只是封装和继承,那么上面的应用基本就是多态了。可是,我们并不满足,可以继续讨论下去。如果只是一般的多态也没什么,可是如果我们想继续使用原来的操作,但是需要加上一点自己的代码,这个时候怎么修改?

class B(A):def __init__(self, a):A.__init__(self, a)def process(self):print 'data'A.process(self)

当然了,在原有的process function简单添加一些功能是可以的,但是如果遇到复杂的功能就要添加额外的function了,比如说如下所示,

class B(A):def __init__(self, a):A.__init__(self, a)def process(self):other_operation(self)A.process(self)def other_operation(self):pass

其他提示

a)使用类特性的时候尽量简单
b)多采用组合的方法解决问题,而不是继承
c)类的代码写好后,多多提炼和修改,多总结和积累
d)类的使用只是服务于流程的抽象和代码的复用,牢记牢记

后面的话

类因为丰富的特性,常常和设计模式绑定在一起。许多同学一谈到设计模式就眉飞色舞,恨不得把23种模式用个遍。其实设计模式为了逻辑抽象和代码复用提炼出来的一种方法,本质还是为了减少冗余代码,明晰业务逻辑,万不可因噎废食,自己把自己困住手脚,不在系统和业务层面下功夫,而在这些概念上吹毛求疵。

python编程(类的使用)相关推荐

  1. python 儿童 游戏_儿童编程教学 – 推荐几款Python编程类游戏

    自学过编程的小伙伴都知道,在学习的过程中,不仅仅要记下很多的知识点,而且那些知识点,都是非常的干,很干,很干,没有一点乐趣的感觉-.. 所以在很多人学习 在玩游戏的过程中就能学习到编程的网站! 支持多 ...

  2. 推荐几款Python编程类游戏,妈妈再也不用担心我的学习了

    自学过编程的小伙伴都知道,在学习的过程中,不仅仅要记下很多的知识点,而且那些知识点,都是非常的干,很干,很干,没有一点乐趣的感觉..... 所以在很多人学习Python的人,也许他的基础知识还没有学好 ...

  3. 翻译Python编程无师自通——专业程序员的养成

    这本书在 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一. 开始初学python,也有不少书了,不想在白花钱(买了就放那里不看了),看一个英文文档的原著,准备每天翻译一点,放到b ...

  4. python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程

    笔者思虑再三还是决定选择图文(因为百家的视频发布画质真不怎么样[囧]). 笔者学习编程的时间也挺长的,因为业余,因为时间不多,各种原因,自学编程的路特别难走.然后笔者发现,自己能为小白贡献一些力量,然 ...

  5. 你的私人编程老师,ChatGPT帮你快速掌握Python编程

    ChatGPT为我们提供了一种全新的学习方式,让你可以更轻松,更快速地学习编程知识. 以下是ChatGPT帮助用户学习编程的优势: 推荐资源和课程ChatGPT可以根据您的编程经验和学习目标,推荐适合 ...

  6. 爬虫python书籍-Python爬虫案例:抓取豆瓣编程类高评分书籍

    对于很多正在学习计算机的朋友来说,选择合适的学习材料是非常重要的. 本文将通过 Python 来爬取豆瓣编程类评分大于 9.0 的书籍. 此案例很适合入门爬虫的朋友学习,总共也就 3 个函数. 下图是 ...

  7. python定义类_提升你的Python编程能力,细说类的继承,拿走不谢

    今天咱们聊点啥呢?要不还是聊点Python基础的东东吧,大家已经都知道啦,Python呢是一种面向对象的脚本编程语言,那面向对象的编程语言呢,都会支持面向对象的三大特性,你知道是哪三大特性吗?当然是咱 ...

  8. css不继承父类样式_提升你的Python编程能力,细说类的继承,拿走不谢

    今天咱们聊点啥呢?要不还是聊点Python基础的东东吧,大家已经都知道啦,Python呢是一种面向对象的脚本编程语言,那面向对象的编程语言呢,都会支持面向对象的三大特性,你知道是哪三大特性吗?当然是咱 ...

  9. python 类和对象_面向对象的编程思想和Python的类,访问和属性,继承

    面向对象的编程思想和Python的类,类的方法和属性,实例方法这一文从面向对象的角度,介绍类的定义,类的属性和自定义方法. 本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和 ...

  10. Python编程思想(24):类的实例方法

    李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法.读者可以在「极客起源」 公众号中输入 160 ...

最新文章

  1. 华为推CPU Turbo,荣耀Note10突破3000档
  2. 从零开始机器学习比赛经验(bird分享)
  3. Microsoft Azure Express Route (专线直连)到云端数据中心(2)
  4. linux获取目标主机shell,expect案例-批量获取主机并分发密钥
  5. 云炬Android开发笔记 19参考面包多商城优化“我的”页面
  6. 面了百度AI,新生代农民工炸了
  7. 图标和文字跟着div比例放大缩小_Word文档页面显示比例与单页多页,文本的输入、修改、删除与插入...
  8. document.getElementById() id是变量
  9. 缺货大环境下,假货防不胜防,我们又该怎样分辨真假芯片?
  10. 光流估计算法RAFT的论文和代码阅读
  11. STL不是线程安全的啊
  12. 驱动,包括很多软件,并不是最新的就是最好的
  13. 矩表 - 现代数据分析中必不可少的报表工具
  14. 9月1日学习内容整理:装饰器带参数,装饰器嵌套
  15. 从exe程序反汇编得到py源码
  16. python下载电影天堂_Python爬虫之《电影天堂》电影详情+下载地址爬取
  17. PostgreSQL 10.1 手册
  18. Unity 自定义自发光材质 shader (对比Standard Eimission)
  19. 旋转变换,变换后改变图片大小
  20. 自动采购订单 Auto PO

热门文章

  1. ZigBee TI ZStack CC2530 8.4 如何用高版本IAR打开低版本协议栈
  2. 学习 Python 的 14 张思维导图
  3. 李大维:互联网人做硬件创业容易产生的七大误解【转载】
  4. DB2一个嵌套循环的sql
  5. GB28181流媒体服务LiveGBS启动报错 HTTP Port[10000] In Use
  6. P2023 [AHOI2009]维护序列
  7. Machine Learning - Coursera week5 Backpropagation in Practice
  8. js分享微信 ,微博 ,qq空间
  9. VGA接口一根针折了
  10. (一)获取上下文绘图环境