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

 

posted @ 2021-05-23 08:45  迪迦奥特曼1  阅读(361)  评论(0编辑  收藏  举报