96SEO 2026-02-19 10:09 0
继承的特性是#xff1a;子类会遗传父类的属性#xff08;继承是类与类之间的关系新建的类称为子类被继承的类称为父类。

在python中支持一个类同时继承多个父类。
python3中如果一个类没有继承任何类那默认继承object类在python2中如果一个类没有继承任何类不会继承object类。
在python3中都是新式类只有在python2中才区别新式类与经典类。
类继承类时只需要才()中写上需要继承的类即可可以通过类的__bases__属性查看该类继承的类。
__init__(self,name,age):self.namenameself.ageageclass
Teacher(People):passsStudent(张三,18)
上述代码中Student和Teacher中没有__init__方法和school属性初始化时就会取父类People中找。
People作为Student和Teacher的父类存储了__init__方法和school属性就避免了Student和Teacher中重复存储代码的问题。
菱形继承当一个子继承多个父类时多个父类最终继承了同一个类称之为菱形继承
如果继承关系是非菱形的类的继承会按直接继承的顺序先找完一条路再去找其他的路。
如图所示的继承顺序为先找最左侧的路B、E再找中间的路C最后找右侧的路D、F。
也可以通过mro表直接查看类的继承顺序。
A(B,C,D):passprint(A.__mro__)(class
object)菱形继承的实现原理(新式类)图中的继承顺序为首先按A的直接继承顺序找B这条路为B、E到两条路相交的节点G后会跳转到下一条路C再到下一条路D找到D、F当三条路全部找完以后再找节点G之后再找F。
A(B,C,D):passprint(A.__mro__)(class
由于一个类可以继承多个父类会导致复杂的菱形继承问题所以python中设置了Mixins规范(阅读俗称的规范)
FlyableMixin:飞行功能print(flying)class
CivilAircraft(FlyableMixin,Vehicle):passclass
Helicopter(FlyableMixin,Vehicle):pass
如上代码中CivilAircraft、Helicopter表示两种类型的飞机而飞机既属于交通工具又能飞行为了避免复杂的多类继承问题我们人为规定FlyableMixin表示一种功能混入CivilAircraft、Helicopter继承的类中用以提示代码阅读者FlyableMixin并不被视为父类而Vehicle才是真正的父类。
mixins类必须表示某种功能混入继承的类中且一般以mixin、able、ible为后缀mixins类表示的功能单一如果需要混入多个功能必须写多个mixins类子类即便没有继承mixins类依然可以工作只是子类会缺少某个功能mixins类功能的实现不依赖继承它的子类
__init__(self,name,age):self.namenameself.ageageclass
__init__(self,name,age,class_name):#People.__init__(self,name,age)super(Student,self).__init__(name,age)self.class_nameclass_namesStudent(张三,18,一班)
print(s.name,s.age,s.class_name)
一班上述代码中Student类派生了People的__init__方法加入了class_name参数的初始化。
由于name和age参数的初始化在People类中已经存在为了避免代码的重复可以重用父类的__init__方法。
重用的方法有两种一种是直接指名道姓使用People类的__init__方法这种方式必须将self参数也传如__init__方法中另一种是使用super函数继承People类的__init__方式这种方式无需传入self参数super会自动将函数中的self传给父类的__init__方法。
在python3中super()中的参数可以不写但是python2中super()中传的参数必须写上并且必须是新式类才能使用super。
super函数会以调用super函数的类为起始按类的继承顺序向后寻找继承的方法。
可以通过mro表查看super的继承顺序。
__mro__和__bases__的区别在于__bases__只能查看类直接的继承顺序而__mro__可以查看类所以的继承顺序。
B上述代码中c.f1()首先会运行C中的f1代码然后运行super().f1()此刻调用super的类是Cmro表中以C为起始向后寻找继承关系找到A类的f1函数再次运行super函数再次在mro表中以A为起始向后找找到B类运行B的f1函数。
组合就是一个类的对象具备某一个属性该属性的值是指向另外外一个类的对象。
__init__(self,name,price):self.namenameself.pricepriceclass
__init__(self,name):self.namenameself.course[]pythonCourse(python,1000)
#将t1、t2的course属性和python、c组合到一起以便于使用course属性可以直接参考price属性的值
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback