zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    如何使用BackgroundWorker
    Start SQL Service failed with message: "the log scan number passed to log scan in database 'master' is not valid"
    Cmdkey 凭证管理器工具
    PowerShell根据下载link下载文件
    vnc远程到连接linux服务器。
    shell远程取数据的脚本.
    about开源监控nagios.
    Android入门:File文件存储
    Android入门:Layout
    Android入门:Log介绍
  • 原文地址:https://www.cnblogs.com/zyh19980816/p/14800434.html
Copyright © 2011-2022 走看看