python编程(类的使用)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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编程(类的使用)相关推荐
- python 儿童 游戏_儿童编程教学 – 推荐几款Python编程类游戏
自学过编程的小伙伴都知道,在学习的过程中,不仅仅要记下很多的知识点,而且那些知识点,都是非常的干,很干,很干,没有一点乐趣的感觉-.. 所以在很多人学习 在玩游戏的过程中就能学习到编程的网站! 支持多 ...
- 推荐几款Python编程类游戏,妈妈再也不用担心我的学习了
自学过编程的小伙伴都知道,在学习的过程中,不仅仅要记下很多的知识点,而且那些知识点,都是非常的干,很干,很干,没有一点乐趣的感觉..... 所以在很多人学习Python的人,也许他的基础知识还没有学好 ...
- 翻译Python编程无师自通——专业程序员的养成
这本书在 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一. 开始初学python,也有不少书了,不想在白花钱(买了就放那里不看了),看一个英文文档的原著,准备每天翻译一点,放到b ...
- python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程
笔者思虑再三还是决定选择图文(因为百家的视频发布画质真不怎么样[囧]). 笔者学习编程的时间也挺长的,因为业余,因为时间不多,各种原因,自学编程的路特别难走.然后笔者发现,自己能为小白贡献一些力量,然 ...
- 你的私人编程老师,ChatGPT帮你快速掌握Python编程
ChatGPT为我们提供了一种全新的学习方式,让你可以更轻松,更快速地学习编程知识. 以下是ChatGPT帮助用户学习编程的优势: 推荐资源和课程ChatGPT可以根据您的编程经验和学习目标,推荐适合 ...
- 爬虫python书籍-Python爬虫案例:抓取豆瓣编程类高评分书籍
对于很多正在学习计算机的朋友来说,选择合适的学习材料是非常重要的. 本文将通过 Python 来爬取豆瓣编程类评分大于 9.0 的书籍. 此案例很适合入门爬虫的朋友学习,总共也就 3 个函数. 下图是 ...
- python定义类_提升你的Python编程能力,细说类的继承,拿走不谢
今天咱们聊点啥呢?要不还是聊点Python基础的东东吧,大家已经都知道啦,Python呢是一种面向对象的脚本编程语言,那面向对象的编程语言呢,都会支持面向对象的三大特性,你知道是哪三大特性吗?当然是咱 ...
- css不继承父类样式_提升你的Python编程能力,细说类的继承,拿走不谢
今天咱们聊点啥呢?要不还是聊点Python基础的东东吧,大家已经都知道啦,Python呢是一种面向对象的脚本编程语言,那面向对象的编程语言呢,都会支持面向对象的三大特性,你知道是哪三大特性吗?当然是咱 ...
- python 类和对象_面向对象的编程思想和Python的类,访问和属性,继承
面向对象的编程思想和Python的类,类的方法和属性,实例方法这一文从面向对象的角度,介绍类的定义,类的属性和自定义方法. 本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和 ...
- Python编程思想(24):类的实例方法
李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法.读者可以在「极客起源」 公众号中输入 160 ...
最新文章
- 华为推CPU Turbo,荣耀Note10突破3000档
- 从零开始机器学习比赛经验(bird分享)
- Microsoft Azure Express Route (专线直连)到云端数据中心(2)
- linux获取目标主机shell,expect案例-批量获取主机并分发密钥
- 云炬Android开发笔记 19参考面包多商城优化“我的”页面
- 面了百度AI,新生代农民工炸了
- 图标和文字跟着div比例放大缩小_Word文档页面显示比例与单页多页,文本的输入、修改、删除与插入...
- document.getElementById() id是变量
- 缺货大环境下,假货防不胜防,我们又该怎样分辨真假芯片?
- 光流估计算法RAFT的论文和代码阅读
- STL不是线程安全的啊
- 驱动,包括很多软件,并不是最新的就是最好的
- 矩表 - 现代数据分析中必不可少的报表工具
- 9月1日学习内容整理:装饰器带参数,装饰器嵌套
- 从exe程序反汇编得到py源码
- python下载电影天堂_Python爬虫之《电影天堂》电影详情+下载地址爬取
- PostgreSQL 10.1 手册
- Unity 自定义自发光材质 shader (对比Standard Eimission)
- 旋转变换,变换后改变图片大小
- 自动采购订单 Auto PO
热门文章
- ZigBee TI ZStack CC2530 8.4 如何用高版本IAR打开低版本协议栈
- 学习 Python 的 14 张思维导图
- 李大维:互联网人做硬件创业容易产生的七大误解【转载】
- DB2一个嵌套循环的sql
- GB28181流媒体服务LiveGBS启动报错 HTTP Port[10000] In Use
- P2023 [AHOI2009]维护序列
- Machine Learning - Coursera week5 Backpropagation in Practice
- js分享微信 ,微博 ,qq空间
- VGA接口一根针折了
- (一)获取上下文绘图环境