python之三大特性
1、python的三大特性:继承、多态、封装
2、python 没有接口这个概念,接口类,抽象类: 归一化设计.
制定一个规范:凡是继承我类的类,必须有我规定的方法.
from abc import ABCMeta,abstractmethod class Payment(metaclass=ABCMeta): # 抽象类(接口类): @abstractmethod def pay(self): pass # 制定了一个规范 @abstractmethod def func(self):pass class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): print('使用支付宝支付了%s' %self.money) class Jdpay(Payment): def __init__(self, money): self.money = money def pay(self): print('使用京东支付了%s' % self.money) class Wechatpay(Payment): def __init__(self,money): self.money = money def pay(self): print('使用微信支付了%s' % self.money) def pay(obj): obj.pay() w1 = Wechatpay(200) a1 = Alipay(200) j1 = Jdpay(100) pay(a1) # 归一化设计 pay(j1) w1 = Wechatpay(300) w1.weixinpay()
3、多态
多态: python处处是多态.
java :强类型语言
python:弱类型语言
name = 'alex'
python 不管什么类型,传入函数,封装到对象中都可以
python没有多态?python处处是多态,而且他有鸭子类型.
鸭子类型 : 看着像鸭子,其实就是鸭子
class Str: def index(self): pass class List: def index(self): pass class Tuple: def index(self): pass
4、封装
广义封装:实例化一个对象,给对象空间封装一些属性.
狭义封装:私有制
私有成员:私有静态字段、静态方法和私有对象属性
对私有成员内的内部可以访问,外部和派生类不可以访问
对于私有成员来说,只能在本类中内部访问,类的外部,派生类均不可访问.
class Parent: def __func(self): print('in Parent func') def __init__(self): self.__func() class Son(Parent): def __func(self): print('in Son func') son1 = Son() 输出结果是:in Parent func