python全栈开发-面向对象-进阶 python_day_18
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python全栈开发-面向对象-进阶 python_day_18,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2784字,纯文字阅读大概需要4分钟。
内容图文
1,面向对象的三大特性是什么? 继承,多态,封装 2,什么是面向对象的新式类?什么是经典类? 凡是继承object类都是新式类. 凡是不继承object类都是经典类. 3,面向对象为什么要有继承?继承的好处是什么? 因为继承可以访问父类的任何方法或变量. 好处:a,提高了代码的复用性 b:提高了代码的维护性 c:让类与类之间产生了关系,是多态的前提 4,面向对象的广度优先,深度优先分别是什么?(只能是两类情况) 广度优先 : 一条路走到倒数第二级,判断,如果其他路能走到终点,则返回走另一条路.如果不能,则走到终点. 深度优先 : 一条路走到底. 5.面向对象中super的作用。 既执行本类又执行父类的方法, 既执行本类又执行父类的方法
类:
- 新式类(python3x),
- 经典类(python2).
单继承;
新式类经典类一样.
多继承:
新式类:广度优先 类名.mro() 新式类.
经典类:深度优先.
初识继承:
子类以及子类实例化的对象 可以访问父类的任何方法或变量.
class Animal: breath = '呼吸' def __init__(self, name, sex, age): self.name = name self.sex = sex self.age = age def eat(self): print(self) print('动物都需要进食....') class Person(Animal): # 括号里面的 父类,基类,超类 括号外面的 子类,派生类. pass class Cat: pass class Dog: pass p1 = Person('alex', 'laddyboy', 1000) print(p1.__dict__) # 子类实例化的对象也可以访问父类所有内容 print(p1.breath) print(p1) p1.eat() # 类名可以访问父类所有内容 print(Person.breath) Person.eat(11) 查询顺序见下图:
定义一个Animal类,写三个类:猫,狗,鸡,,每个类中都有吃喝自己的方法
class Animal: def __init__(self, name, sex, age): self.name = name self.sex = sex self.age = age def eat(self,a1): print('%s吃%s' % (self.name,a1)) def drink(self): print('%s喝东西' % (self.name)) class Cat(Animal): def miaow(self): print('喵喵叫') def eat(self): # 只执行自己类中的方法 print(666) class Brid(Animal): def __init__(self, name,sex,age,wing): # self b1对象 name '鹦鹉',sex '公',age 20, wing '绿翅膀' ''' self=b1对象 name='鹦鹉' sex='公' age= 20, wing='绿翅膀' ''' # Animal.__init__(self, name, sex, age) super().__init__(name,sex,age) # super(Brid,self).__init__(name,sex,age) self.wing = wing def bark (self): print('嗷嗷叫') def eat(self,argv): super().eat(argv) print('鸟吃虫子...') class Chook(Animal): def crow(self): print('大爷laiwanya') cat1 = Cat('tom','公', 3) # 只执行子类的方法:在子类创建这个方法. cat1.eat() # 只执行父类的方法:子类中不要定义与父类同名的方法 # 既要执行子类的方法,又要执行父类的方法? # 有两种解决方法. #1,Animal.__init__(self, name, sex, age) #2,super().__init__(name,sex,age) b1 = Brid('鹦鹉','公',20,'绿翅膀') print(b1.__dict__) b1.eat('金蝉')
广度优先 : 一条路走到倒数第二级,判断,如果其他路能走到终点,则返回走另一条路.如果不能,则走到终点. 深度优先 : 一条路走到底.
class A: def func(self): print('IN A') class B(A): pass # def func(self): # print('IN B') class C(A): pass # def func(self): # print('IN C') class D(B): pass # def func(self): # print('IN D') class E(C): pass # def func(self): # print('IN E') class F(D,E): pass # def func(self): # print('IN F') f1 = F() f1.func()
执行顺序:
print(F.mro()) # 查询类的继承顺序
内容总结
以上是互联网集市为您收集整理的python全栈开发-面向对象-进阶 python_day_18全部内容,希望文章能够帮你解决python全栈开发-面向对象-进阶 python_day_18所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。