Flask接口签名sign原理与实例代码浅析
273
2022-08-27
【Python】面向对象三大特性
函数式编程和面向对象的对比函数: 定义简单/调用简单 面向对象: 定义复杂/调用复杂 好处:归类,将某些类似的函数写在一起面向对象代码如何编写
class Foo: def __init__(self,name): self.name = name def detail(self,msg): print(self.name,msg) obj = Foo() obj.detail()
可以先归类,再提取公共值到构造方法中
#归类class File: def file_read(self,file_path): pass def file_update(self,file_path): pass def file_delete(self,file_path): pass #提取公共值 class File: def __init__(self,file_path): self.file_path = file_path #各方法中的公共值放入__init__方法中,避免重复写 def file_read(self): pass def file_update(self,file_path): pass def file_delete(self,file_path): pass
面向对象三大特性:封装/继承/多态
(1)封装 将相关功能(不同方法)封装到一个类中,
class Message: def email(self):pass def msg(self):pass def wechat(self):pass
将数据封装到一个对象中:
class Person: def __init__(self,name,age,gender): self.name = name self.age = age self.gender = gender obj = Person('孙福来',18,'女')
(2)继承
class SuperBase: def f3(self): print('f3') class Base(SuperBase): # 父类,基类 def f2(self): print('f2') class Foo(Base): # 子类,派生类 def f1(self): print('f1') obj = Foo() obj.f1() obj.f2() obj.f3() # 原则:现在自己类中找,没有就去父类
支持多继承(一般先找左/再找右),多继承遵守C3算法,多继承的目的是提高代码重用性,在找继承关系的时候,在类中self是谁的对象,从谁开始找 (3)多态 多种形态或多种状态 鸭子模型,只要可以嘎嘎叫就是鸭子.
Python # 由于python原生支持多态,所以没有特殊性. class Foo1: def f1(self): pass class Foo2: def f1(self): pass class Foo3: def f1(self): pass def func(arg): #参数arg是一个对象,随便传入一个对象,只要有f1方法即可 arg.f1() obj = Foo1() # obj= Foo2() obj = Foo3() func(obj)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~