Python學習(十一) Python 類

來源:互聯網
上載者:User

標籤:orb   分頁   @class   comm   tab   方法   防止   username   eth   

 Python 類

物件導向編程是有效軟體編寫方法之一。

python程式編寫方法

  • 1、函數編程,使用函數方式
  • 2、物件導向編程,使用類方式
建立類
建立方法    構造方法,__init__(self,arg)        obj = 類(‘a1‘)    普通方法        obj = 類(‘xxx’)        obj.普通方法名()

格式如下:

class DataBaseHelper:    def __init__(self, ip, port, username, pwd): self.ip = ip self.port = port self.username = username self.pwd = pwd def add(self,content): # 利用self中封裝的使用者名稱、密碼等 連結資料 print(‘content‘) # 關閉資料連結 def delete(self,content): # 利用self中封裝的使用者名稱、密碼等 連結資料 print(‘content‘) # 關閉資料連結 def update(self,content): # 利用self中封裝的使用者名稱、密碼等 連結資料 print(‘content‘) # 關閉資料連結 def get(self,content): # 利用self中封裝的使用者名稱、密碼等 連結資料 print(‘content‘) # 關閉資料連結 #封裝資料庫登陸IP,連接埠,使用者名稱,密碼 s1 = DataBaseHelper(‘1.1.1.1‘,3306, ‘jorbabe‘, ‘6666‘)
物件導向三大特性物件導向三大特性之一:封裝

使用構造方法封裝相同屬性:

def __init__(self, n,a): self.name = n self.age = a self.xue = ‘o‘ b1 = Bar(‘jorbabe‘, 18)b2 = Bar(‘yunlei‘, 19)
物件導向三大特性之二:繼承

1、繼承

class 父類:    pass    class 子類(父類):    pass

2、重寫方法 防止執行父類中的方法

3、self永遠是執行改方法的調用者

4、

super(子類, self).父類中的方法(...)

父類名.父類中的方法(self,...)

5、Python中支援多繼承

  • a. 左側優先
  • b. 一條道走到黑
  • c. 同一個根時,根最後執
物件導向三大特性之三:多態
python====> 原生多態,忽略多態,python傳參不用指定參數的類型。
v = ‘jorbabe‘def func(arg):    print(arg)        func(1) func(‘jorbabe‘)
類成員
class Foo:  #靜態欄位,屬於類  country = ‘中國‘ def __init__(self, name,): # 普通欄位 self.name = name # 普通方法 def show(self): print(self.name)obj = Foo(‘jorbabe‘)obj.nameobj.show()

類成員: 欄位

  • 普通欄位,儲存在對象中,執行只能通過對象訪問
  • 靜態欄位,儲存在類中, 執行 可以通過對象訪問 也可以通過類訪問

方法

  • 普通方法,儲存在類中,由對象來調用,self=》對象
普通方法    class Foo:        def bar(self): print (‘bar‘) #推薦 obj = Foo() obj.bar() Foo.bar(obj)
  • 靜態方法,儲存在類中,由類直接調用
#類方法    class Foo:        def bar(self): print (‘bar‘) #靜態方法 @staticmethod def sta(): print (‘sta‘) #靜態方法+傳參 @staticmethod def stac(a1,a2): print (a1,a2) Foo.sta() Foo.stac(1,2) sta 1 2
  • 類方法,儲存在類中,由類直接調用,cls=》當前類
#類方法    class Foo:        def bar(self): print (‘bar‘) #靜態方法 @staticmethod def sta(): print (‘sta‘) #靜態方法+傳參 @staticmethod def stac(a1,a2): print (a1,a2) #類方法 @classmethod def classmd(cls): #cls:類名 print (cls) print (‘classmd‘) Foo.classmd() <class ‘__main__.Foo‘> classmd

應用情境:

  • 如果對象中需要儲存一些值,執行某功能時,需要使用對象中的值 -> 普通方法
  • 不需要任何對象中的值,靜態方法

屬性

class Foo:        def __init__(self): self.name = ‘a‘ def bar(self): print (‘bar‘) #屬性或特性 @property def per(self): print (‘per‘) obj = Foo() # obj.per() obj.per
  • 調用方式一一對應
class Foo:        def __init__(self): self.name = ‘a‘ def bar(self): print (‘bar‘) #屬性或特性。調用方式:obj.per @property def per(self): # print (‘per‘) return 1 #屬性傳參。調用方式:obj.per = 123 @per.setter def per(self,val): print (val) #屬性參數刪除。調用方式:del obj.per @per.deleter def per(self): print (‘666666‘) obj = Foo() # obj.per() obj.per r = obj.per print (r) obj.per = 123 del obj.per 1 123 666666
中國的所有省份,用物件導向知識表示?class Province:    # 靜態欄位,屬於類    country =  ‘中國‘ def __init__(self, name): # 普通欄位,屬於對象 self.name = name henan = Province(‘河南‘)henan.namehenan.name = "河南南"#hebei = Province(‘河北‘)# Province.countryprint (Province.country)print (henan.name)中國河南南
執行個體:利用屬性功能實現分頁
class Pargination:    #定義頁碼    def __init__(self,current_page): #判斷是否是整數 try: p = int(current_page) except Exception as e: p = 1 #頁碼賦值 self.page = p #計算開始 @property def start(self): val = (self.page - 1) * 10 return val #計算結尾 @property def end(self): val = self.page * 10 return val#定義元組列表li = []#定義元組列表賦值for i in range(1000): li.append(i)while True: p = input (‘請輸入要查看的頁碼:‘) #給類的方法傳值 obj = Pargination(p) #類方法未添加屬性前的調用方式 # print (li[obj.start():obj.end()]) #方法添加屬性後的調用方式,去括弧 print (li[obj.start:obj.end])
請輸入要查看的頁碼:5[40, 41, 42, 43, 44, 45, 46, 47, 48, 49]請輸入要查看的頁碼:6[50, 51, 52, 53, 54, 55, 56, 57, 58, 59]請輸入要查看的頁碼:aa[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]請輸入要查看的頁碼:

Python學習(十一) Python 類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.