首页 > 编程语言 > 详细

python笔记5 接口类抽象类 封装

时间:2018-12-24 21:18:05      阅读:215      评论:0      收藏:0      [点我收藏+]

 接口类抽象类

接口类:接口类就是制定一个规则,让其他人按照我的规则去写程序.

#!/usr/bin/env python
from abc import ABCMeta,abstractmethod       #针对新手强制规定类的格式,不统一格式就报错
class payment(metaclass=ABCMeta):          #类的模板,新加入的类必须沿用这个类的模型
    @abstractmethod
    def pay(self,money):
        pass
class qqpay:
    def pay(self, money):
        print(QQ支付了%s元 % money)


class alipay:
    def pay(self, money):
        print(阿里支付了%s元 % (money))

class wechat:
    def pay(self, money):
        print(微信支付了%s元 % (money))

def pay(fs,money):                #统一支付方式的函数 fs.pay(money)
a1
= qqpay()                #定义类的单个对象 a2 = alipay() a3 = wechat() pay(a1,50)          #支付的方式被统一

封装

类的三大特性:继承,封装,多态(python默认支持)

类的结构:

class A:
    country = china  # 静态变量(属性,字段)
    __name__ = wk  # 私有静态变量

    def func(self):  # 动态普通方法
        pass

    def __init__(self):  # 特殊方法,双下方法
        pass

    def __func(self, age):  # 私有方法
        self.__age = age     #私有对象属性

    @property     #属性
    def f1(self):
        pass

    @classmethod  # 类方法
    def f2(cls):
        pass

    @staticmethod  # 静态方法
    def f3():
        pass

私有

私有成员有:  私有变量,私有对象属性,私有方法

class A:
    __name = wk           #私有变量

    def __aa(self, age):    #私有方法
        self.__age = age    #私有对象属性
                    

 私有变量

class A:
    country = china
    __name = ‘wk‘

    def __init__(self, name, xingbie):
        self.name = name
        self.__xingb = xingbie

    def aa(self):  
        print(self.__name)        #私有变量类外不能访问(print(bb.__name)报错),只能在本类内使用,子类继承父类一样不能调用父类私有变量
bb = A(11,22)
bb.aa()
wk

私有变量不是真实的找不到,而是变量名__name变成了_A__name,用_A__name就能找到私有变量

class A:
    country = china
    __name = wk

    def __init__(self, name, xingbie):
        self.name = name
        self.__xingb = xingbie

    def aa(self):
        print(self.__name)

class B(A):
    def ee(self):
        print(self.__name)

bb = A(11,22)
print(bb._A__name)            #私有变量前边加_A就能调用

wk

 

python笔记5 接口类抽象类 封装

原文:https://www.cnblogs.com/ywrj/p/10170989.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!