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() #增加或者修改

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章