• 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
  • 相关阅读:
    Kubernetes如何支持有状态服务的部署?
    Web 安全入门-书籍及建议
    docker kubernetes swarm spring cloud结合学习资源
    docker-compose 完整打包发布, 多服务,多节点SPRING CLOUD ,EUREKA 集群
    Kubernetes权威指南学习笔记(一)
    解决k8s出现pod服务一直处于ContainerCreating状态的问题的过程
    Spark操作—aggregate、aggregateByKey详解
    maven设置------settings.xml文件学习
    Scala详细环境安装与配置
    内存泄露
  • 原文地址:https://www.cnblogs.com/zyh19980816/p/14800434.html
Copyright © 2020-2023  润新知