python面向对象的三大特性: 多态,封装,继承 多态: 在不知道对象到底是什么类型.又想对其做一些操作时,就会用到多态 如 'abc'.count('a') #对字符串使用count函数返回a的数量 ['a','b','c'].count('a') #对列表使用count返回a的数量 类型虽然不同,但是都可以调用count()来实现同样的目的,这就是多态. 毁掉多态: 一些类型检查会毁掉多态,如type isinstance issubclass等等. 实际上应该尽量少用这些,而多用多态.…
python新式类 旧式类: python2.2之前的类称为旧式类,之后的为新式类.在各自版本中默认声明的类就是各自的新式类或旧式类,但在2.2中声明新式类要手动标明: 这是旧式类为了声明为新式类的方式 class A: #手写把元类 metaclass 给 type __metaclass__ = type pass #或者这样写,效果是一样的 class B(object): #手动指定继承自object类,object类是最初的类,一切类都是object的子类,是祖宗 pass  对于cl…
Python 面向对象 —— 类和实例 类 虽然 Python 是解释性语言,但是它是面向对象的,能够进行对象编程.至于何为面向对象,在此就不详说了.面向对象程序设计本身就很值得深入学习,如要了解,请参阅网上其他的资料. 面向对象最重要的概念就是类(Class)和实例(Instance),牢记 类 是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 以Student类为例,在Python中,定义类是通过 class…
'''现在主流的编程思想有两种,一种是面向对象,一种是面向过程面向过程编程 核心是过程二字,过程指的是解决问题的步骤,即先干什么.再干什么.最后干什么... 基于该思想编写程序就好比再设计一条流水线,是一种机械式的思维方式 优点:复杂的问题流程化.进而简单化 缺点:可扩扩展性差面向对象编程: 核心对象二字,对象是特征(变量)与技能(函数)的结合体, 基于该思想编写程序就好比创造一个世界,你就是这个世界的上帝, 在上帝眼里一切存在的事物都是对象,任何不存在的对象也都可以造出来 是一种上帝式的思维方…
目录 1 查看继承关系 2 说明 3 查看源码: 实现了FilterInvocationSecurityMetadataSource 的类将无法切入声明式事物. 原因: 1 查看继承关系 先查看FilterInvocationSecurityMetadataSource的继承结构,可以看出,这个类是AopInfrastructureBean的子接口 2 说明 可以看出FilterInvocationSecurityMetadataSource 是SecurityMetadataSource的子类…
Python 类的继承和多态 Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 我们先来定义一个class Person,表示人,定义属性变量 name 及 sex (姓名和性别): 定义一个方法print_title():当sex是male时,…
Python 类的封装 承接上一节,学了Student类的定义及实例化,每个实例都拥有各自的name和score.现在若需要打印一个学生的成绩,可定义函数 print_score() 该函数为类外的函数,如下: class Student(object): def __init__(self, name, score): self.name = name self.score = score May = Student("May",90) # 须要提供两个属性 Peter = Stud…
用import关键字导入模块的几种方式: #python是自解释的,不必多说,代码本身就是人可读的 import xxx from xxx import xxx from xxx import xx1,xx2,xx3 from xxx import * import xxx as xxx from xxx import xxx as xxx 序列解包赋值: x,y,z = 1,2,3 #右侧1,2,3实际是一个(1,2,3)的tuple,然后解包出来再分别赋值 x,y = y,x #同理,交换赋…
使用 % 符号格式化字符串: """常用转换说明符:""" #%s: 按照str()方式转换 #%r: 按照repr()方式转换 #%d: 十进制整数 #%f: 十进制浮点数 #%x/%X:小写/大写无符号十六进制数 #%e/%E:小写/大写科学计数法 """宽度与精度""" "'%10.2f'" % 3.1415 #这里的10表示转换后字符宽度,2表示精确到小数点2…
序列相加: [1,2] + [3,4] == [1,2,3,4] #字符串也是序列的一种 'hello' + 'world' == 'hello world' #但是序列相加只限于相同类型的序列间相加.所以 [1] + 'haha' #这样是会报错的 序列相乘: #数字乘以序列会产生新的序列: 'python' * 3 == 'pythonpythonpython' [1,2] * 3 == [1,2,1,2,1,2] #创建一个占用n个元素空间的列表: mylist = [None] * 4…