类的定义
- 把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念
对象的定义
- 基于类而创建一个具体的事物,类的实例化
接口继承
- 继承的第二种含义非常重要。它又叫“接口继承”。
- 接口继承实质上是要求“做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,可一视同仁的处理实现了特定接口的所有对象”——这在程序设计上,叫做归一化。
- 归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合——就好象
linux的泛文件概念一样,所有东西都可以当文件处理,不必关心它是内存、磁盘、网络还是屏幕(当然,对底层设计者,当然也可以区分出“字符设备”和“块设备”,然后做出针对性的设计:细致到什么程度,视需求而定)。
| |
子类中调用父类的方法
| |
组合
- 1、组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合。
- 2、作用是可以将两个本来不相关的类联系起来。一般是两个类之间有显著的不同,很多时候还要附属关系(有相同的属性也有不同的属性)。比如人和头,手机和电池等等。
- 3、无纵向关系时用组合,有纵向关系时用继承。
- 4、组合就是一个类中使用到另一个类,从而把几个类拼到一起。组合的功能也是为了减少重复代码
多态
- 由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同
- 多态的概念指出了对象如何通过他们共同的属性和动作来操作及访问,而不需考虑他们具体类。
- 多态表明了动态(又名,运行时)绑定的存在,允计重载及运行时类型确定和验证。
| |
反射
getattr(object, name)- 得到属性的值
hasattr(object, name)- 说明:判断对象object是否包含名为name的特性(
hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的
- 说明:判断对象object是否包含名为name的特性(
setattr(object, name, value)- 这是相对应的
getattr()。参数是一个对象,一个字符串和一个任意值。字符串可能会列出一个现有的属性或一个新的属性。这个函数将值赋给属性的。该对象允许它提供。例如,setattr(x,“foobar”,123)相当于x.foobar= 123
- 这是相对应的
delattr(object, name)- 与
setattr()相关的一组函数。参数是由一个对象(记住python中一切皆是对象)和一个字符串组成的。string参数必须是对象属性名之一。该函数删除该obj的一个由string指定的属性。delattr(x, 'foobar')=del x.foobar
- 与
注:
getattr,hasattr,setattr,delattr对模块的修改都在内存中进行,并不会影响文件中真实内容。
动态导入模块
问题:
- 我们要导入一个模块,可以使用
import.现在有这样的需求,我动态输入一个模块名,可以随时访问到导入模块中的方法或者变量,怎么做呢?
| |
| |
包装
- 对一个已存在的对象进行包装,可以是对一个已存在的对象,增加,删除,或者修改功能。可以包装任何类型(type)作为一个类(class)的核心成员(如
list,dict等),以使新对象的行为模仿你想要的数据类型中已存在的行为,并且去掉你不希望存在的行为。
| |
授权
| |
函数补充
| |