python第七天学习总结

1.接口类和抽象类是一种:是一种规范,写代码时的规范
class QQpay:
def pay(self,money):
print('您已经通过qq支付了%s元' %money)

class Alipay:
def pay(self, money):
print('您已经通过支付宝支付了%s元' % money)

class Wechatpay:
def fuqian(self, money): #开发方式不统一
print('您已经通微信支付了%s元' % money)

from abc import ABCMeta,abstractmethod
class Payrole(metaclass=ABCMeta): # 抽象类或者接口类,制定规范,统一方法名,强制性的规定br/>@abstractmethod
def pay(self): pass

class QQpay(Payrole):
def pay(self,money):
print('您已经通过qq支付了%s元' %money)

class Alipay(Payrole):
def pay(self, money):
print('您已经通过支付宝支付了%s元' % money)

class Wechatpay(Payrole):
def pay(self, money):
print('您已经通过支付宝支付了%s元' % money)

def pay(obj,money):
obj.pay(money)

# a = QQpay()
# b = Alipay()
c = Wechatpay()
**# pay(a,100) # 归一化设计,统一你的支付方式
# pay(b,1200)
pay(c,10000) *

  1. 多态:python一些相似的方法,也叫鸭子类型,Python默认就支持多态,自带多态
    #相似的方法
    class Str:
    def index(self):
    print('通过元素找索引')

class List:
def index(self):
print('通过元素找索引')

class Tuple:
def index(self):
print('通过元素找索引'

3.封装:广义封装和狭义封装
广义封装:封装到对象中的属性是一种封装
class Person:
country = 'China'
def init(self,name,age):
self.name = name
self.age = age
def func(self):
print(self.name)
p1 = Person('aa',1000) #广义封装
p2 = Person('bb',10000) #广义封装

狭义封装:私有性封装,分为私有静态字段(私有静态变量),私有普通字段(私有对象属性),私有方法
class Person:
country = 'China' # 公有静态字段(公有静态变量)

  • name = 'oldboy' # 私有静态字段(私有静态变量)*
    • age = 1000 # 私有静态字段(私有静态变量),在类的外部不能调用,派生类也不可访问
      def func1(self):*
      return self.__name #私有静态字段在类的内部可以访问

4.字段,属性,方法等
普通方法:一般是由对象调用
类方法:一般是由类名调用,有些情况,对于类内部的方法,无需对象直接调用,而类名直接调用即可
态方法:不需要传入对象,和类名,直接调用即可
class People:
def init(self, name, weight, height):
self.name=name
self.weight=weight
self.
height=height

@property        #将bmi(self)方法伪装成属性
def bmi(self):
    return self.__weight / self.__height**2

p1 = People('aa', 95,1.83)
print(p1.bmi)
# property 属性将你的一些方法伪装成属性,虽然在代码上没有什么提高,让其看起来更合乎情理.

5.其他成员及方法
isinstance() 对象是否属于这个类,或者这个类血缘关系.
issubclass() 判断 第一类是第二个类的后代

5.反射
getattr() #获取值
setattr() #增加或者修改

猜你喜欢

转载自blog.51cto.com/13544778/2133544