摘要: 1、绑定到对象的方法的应用 绑定给对象,就应该由对象来调用,自动将对象本身当做第一个参数传入 2、绑定给类,就应该由类来调用,自动将类本身当做第一个参数传入 3、非绑定方法 非绑定方法,不与类或者对象绑定,谁都可以调用,没有自动传值一说 阅读全文
posted @ 2018-03-22 12:45 xudachen 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一、在类内部定义的函数,分为两大类: 1、绑定方法,绑定给谁,就应该由谁来调用,谁来调用就会把调用者当做第一个参数自动传入 绑定到对象的方法:在类内定义的没有被任何装饰器的方法 类里面定义的函数与对类来说与普通函数来说没有什么区别,一般是绑定到对象的, 绑定到类的方法:在类内定义的被装饰器class 阅读全文
posted @ 2018-03-22 12:19 xudachen 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一个求BMI体质指数的例子,代码如下: 体质指数(BMI)= 体重 / 身高 **2 但是,这样不够灵活,我们对代码做下更改: 如下: 上述代码一定程度上提高了灵活性,但是用户的调用的时候是在调用一个方法区执行,能不能让用户感觉就向在调一个数据属性呢,答案是可以的,这就用到了property装饰器 阅读全文
posted @ 2018-03-21 21:39 xudachen 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 一、封装数据属性、明确区分内外:示例代码如下: 可以防止外部直接修改隐藏属性,并且提供了一个接口,按照固定的格式向调用者输出信息 也可以提供修改隐藏属性的接口,让调用者通过接口修改隐藏的属性,并且可以写上控制逻辑 例如: 可以看出,修改成功了,并且加上了控制,不让调用者随意更改 二、隔离复杂度 例如 阅读全文
posted @ 2018-03-21 21:18 xudachen 阅读(1246) 评论(0) 推荐(0) 编辑
摘要: 一、引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八等一起装进麻袋,然后把麻袋封上口子。 照这种逻辑看,封装=‘隐藏’,这种理解是相当片面的 二、如何实现属性的隐藏 1、在python中用双下划线开头的方式将属性隐藏起来,示例代码如下: 不仅类A无法访问,A的实例化对象也 阅读全文
posted @ 2018-03-20 15:42 xudachen 阅读(311) 评论(0) 推荐(0) 编辑
摘要: Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’ python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象 也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。 例如:利用标准库中 阅读全文
posted @ 2018-03-20 14:01 xudachen 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 一、什么是多态 多态是同一类事物的多种形态 例如: 二、什么是多态性 多态性指的是可以在不考虑对象类型的情况下而直接使用对象 例如: 三、多态性的好处 1.增加了程序的灵活性 以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal) 2.增加了程序额可扩展性 通过继承a 阅读全文
posted @ 2018-03-20 13:42 xudachen 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 一、什么是抽象类 与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 二、抽象类与普通类的不同 抽象类中只能有抽象方法(没有实现功能),该类不能被实例化,只能被继承,且子类必须实现抽象方法。 三、在python中利用a 阅读全文
posted @ 2018-03-20 13:20 xudachen 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 先看一段代码: 如果要为,teacher类添加老师所教的课程信息,如课程名,课程价格,课程周期等,可以在init函数里面增加,但是如果多个老师教同一门课程,就会出现代码重复的问题,如下 代码所示: 怎样解决代码重复问题,可以新加一个course类:如下所示: 但是,course类和teacher类并 阅读全文
posted @ 2018-03-18 21:59 xudachen 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 一、指名道姓的方式,不依赖于继承 示例代码如下: 从以上结果可以看出,即执行了自己的特有方法,又执行了父类中继承的方法 想为草丛伦增加一个weapon私有属性,代码如下: 报错提示缺少一个weapon位置参数,加上位置参数就可以实例化成功了, 但是发现了重复代码,怎样减少重复代码呢,可以使用 二、s 阅读全文
posted @ 2018-03-18 21:44 xudachen 阅读(954) 评论(0) 推荐(0) 编辑