定制企业网站建设制作,哪些婚庆公司比较好,wordpress加载本地媒体,教育网站制作运营继承和多态 刚才我们提到了#xff0c;可以在已有类的基础上创建新类#xff0c;这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来#xff0c;从而减少重复代码的编写。提供继承信息的我们称之为父类#xff0c;也叫超类或基类#xff1b;得到继承信息… 继承和多态 刚才我们提到了可以在已有类的基础上创建新类这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来从而减少重复代码的编写。提供继承信息的我们称之为父类也叫超类或基类得到继承信息的我们称之为子类也叫派生类或衍生类。子类除了继承父类提供的属性和方法还可以定义自己特有的属性和方法所以子类比父类拥有的更多的能力在实际开发中我们经常会用子类对象去替换掉一个父类对象这是面向对象编程中一个常见的行为对应的原则称之为里氏替换原则。下面我们先看一个继承的例子。 class Person(object):人def __init__(self,name,age):self._name nameself.age age propertydef name(self):return self._namepropertydef age(self):return self._ageage.setterdef grade(self, grade):self._grade gradedef study(self, course):print(%s的%s正在学习%s. % (self._grade, self._name, course))class Teacher(Person)def __init__(self, name, age, title):super().__init__(name, age)self._title titlepropertydef title(self):return self._titletitle.setterdef title(self, title):self._title titledef teach(self, course):print(%s%s正在讲%s. % (self._name, self._title, course))def main():stu Student(王大锤, 15, 初三)stu.study(数学)stu.watch_av()t Teacher(骆昊, 38, 老叫兽)t.teach(Python程序设计)t.watch_av()if __name__ __main__:main()子类在继承了父类的方法后可以对父类已有的方法给出新的实现版本这个动作称之为方法重写override。通过方法重写我们可以让父类的同一个行为在子类中拥有不同的实现版本当我们调用这个经过子类重写的方法时不同的子类对象会表现出不同的行为这个就是多态poly-morphism。 列表生成式a [x for x in range(100000000000 if x % 20]优点计算速度快因为一次性已经加载到内存中了适合数据量不太大的情况缺点占用内存生成器a (x for x in range(10000000000) if x % 2 0)优点节约内存空间缺点计算速度慢因为要生成 继承代码class A(object):def __init__(self):self.a 100 def A1(self):print(A1) 在类名中写上继承的类 class B(A):def init(self):A.init(self)self.b 200def B1(self)print‘B1 装饰器代码def deco(func):def warp(a,b):print(ab)return func(a,b)return warpdecodef qa(a,b):print(a,b)qa(100,20) 装饰器参数代码#装饰器将前面两个数字的求和函数本身第三个数乘上这个和。def qa(func): def warp(num1,num2,num3):num num1 num2 return func(0,num,num3)return warpqadef SUM(num1,num2,num3):print(num1,num2,num3)print(num2*num3)SUM(5,8,9) 闭包def foo():l []def bar(i):l.append(i)return lreturn barf1 foo()res1 f1(1)print(res1)res2 f1(2)print(res2)输出结果是 [1][1, 2]