接口类:接口类就是制定一个规则,让其他人按照我的规则去写程序.
#!/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
原文:https://www.cnblogs.com/ywrj/p/10170989.html