第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Python 進階應(yīng)用教程

Python 進階應(yīng)用教程
01 Python 的對象和類 02 Python 類屬性和實例屬性 03 Python類的構(gòu)造方法、析構(gòu)方法、實例方法 04 Python 類的私有屬性和私有方法 05 Python 類的繼承和多繼承 06 Python 類實戰(zhàn) 07 Python 中的迭代器實現(xiàn)原理 08 Python 中的迭代器趣味實踐 09 Python 中的生成器實現(xiàn)原理 10 Python 中的生成器趣味實踐 11 Python 中的錯誤和異常 12 Python 中的異常處理 13 Python 中的模塊 14 Python 標準庫之 os 模塊 15 Python 標準庫之 sys 模塊 16 Python 標準庫之 math 模塊 17 Python 標準庫之 random 模塊 18 Python 標準庫之 Json 模塊 19 Python 標準庫 datetime 模塊 20 Python 中的常用第三方模塊 21 Python 中的命名空間 22 Python 中的作用域 23 Python 中的文件 IO 操作 24 Python 基礎(chǔ)實戰(zhàn) 25 Python 內(nèi)置函數(shù) 26 Python 中使用正則表達式 27 使用 Python 操作 MySQL 數(shù)據(jù)庫 28 使用 Python 操作 Mongo 數(shù)據(jù)庫 29 使用 Python 操作 Redis 數(shù)據(jù)庫 30 使用 Python 發(fā)送一封郵件 31 threading 之 Thread 的使用 32 threading 之 Lock 的基本使用 33 Python 生產(chǎn)者消費者模型 34 Python 的內(nèi)存管理與垃圾回收 35 Python 領(lǐng)域運用:網(wǎng)絡(luò)爬蟲 36 Python 領(lǐng)域運用:Web 開發(fā) 37 Python 領(lǐng)域運用:自動化運維 38 Python 領(lǐng)域運用:自動化測試

Python 類屬性和實例屬性

下表列出了 4 個常見的明星人物:

姓名 年齡
周潤發(fā) 58
成龍 55
劉德華 53
周星馳 54

進行歸納總結(jié):

  • 這些人物具有較高的知名度,把這些人物歸類為明星;
  • 每個明星兩個屬性:姓名和年齡。明星這個群體具有一個屬性:數(shù)量,在這張表格中,明星的數(shù)量是 4;
  • 姓名和年齡等屬性是用于描述具體的一個對象(例如:周潤發(fā)),而人物的數(shù)量是用于描述明星這個類別。

如果使用面向?qū)ο蠹夹g(shù)對以上實體進行描述,周潤發(fā)、成龍、劉德華、周星馳等人物是對象,描述這些知名人物的抽象是類,需要區(qū)分位于不同層次的屬性:

  • 隸屬于具體對象的屬性,例如:姓名、年齡
  • 隸屬于類的屬性,例如:人物數(shù)量

本節(jié)講解在 Python 中這兩個層次上的屬性的概念和使用。

1. 實例屬性

實例屬性是隸屬于具體對象的屬性,用于描述具體的對象。示例代碼如下:

class Person:
    pass

zhou = Person()    
zhou.name = 'Zhou'
zhou.age = 58
print('name = %s, age = %d' % (zhou.name, zhou.age))

liu = Person()
liu.name = 'Liu'
liu.age = 53
print('name = %s, age = %d' % (liu.name, liu.age))
  • 在第 1 行,定義了類 Person
  • 在第 4 行,使用類 Person 創(chuàng)建一個對象 zhou
    • 在第 5 行,設(shè)置對象 zhou 的屬性 name,該屬性為實例屬性
    • 在第 6 行,設(shè)置對象 zhou 的屬性 age,該屬性為實例屬性
    • 在第 7 行,打印對象 zhou 的屬性 name 和 age
  • 在第 9 行,使用類 Person 創(chuàng)建一個對象 liu
    • 在第 10 行,設(shè)置對象 liu 的屬性 name,該屬性為實例屬性
    • 在第 11 行,設(shè)置對象 liu 的屬性 age,該屬性為實例屬性
    • 在第 12 行,打印對象 liu 的屬性 name 和 age

程序運行輸出如下:

name = Zhou, age = 58
name = Liu, age = 53

2. self 參數(shù)

在前面的例子中,存在兩個對象 zhou 和 liu,通過 zhou.name、liu.name 這樣的形式訪問實例屬性。上面的例子存在一個顯著的問題:

  • 在第 7 行,使用 print(‘name = %s, age = %d’ % (zhou.name, zhou.age)) 打印對象 zhou
  • 在第 12 行,使用 print(‘name = %s, age = %d’ % (liu.name, liu.age)) 打印對象 liu

以上這兩行代碼是雷同的,功能是重復(fù)的。Python 允許在類中定義方法,訪問對象的屬性,語法如下:

class 類名:
    def 方法(self):
        self.屬性

在類中定義的方法,第一個參數(shù) self 指向調(diào)用該方法的對象,在方法中通過 “self.屬性” 這樣的形式訪問對象的實例屬性。示例代碼如下:

class Person:
    def introduce(self):
        print('name = %s, age = %d' % (self.name, self.age))

zhou = Person()    
zhou.name = 'Zhou'
zhou.age = 58
zhou.introduce()

liu = Person()
liu.name = 'Liu'
liu.age = 53
liu.introduce()
  • 在第 1 行,定義了類 Person
    • 在第 2 行,定義了類 Person 的方法 introduce,introduce 的 self 參數(shù)指向調(diào)用 introduce 方法的對象
    • 在第 3 行,introduce 方法通過 self.name 和 self.age 訪問對象的屬性
  • 在第 5 行,使用類 Person 創(chuàng)建一個對象 zhou
    • 在第 6 行,設(shè)置對象 zhou 的屬性 name,該屬性為實例屬性
    • 在第 7 行,設(shè)置對象 zhou 的屬性 age,該屬性為實例屬性
    • 在第 8 行,調(diào)用對象 zhou 的方法 introduce,對象 zhou 被傳遞給方法 introduce,作為 self 參數(shù),在執(zhí)行 introduce 時,self 參數(shù)指向?qū)ο?zhou
  • 在第 10 行,使用類 Person 創(chuàng)建一個對象 liu
    • 在第 11 行,設(shè)置對象 liu 的屬性 name,該屬性為實例屬性
    • 在第 12 行,設(shè)置對象 liu 的屬性 age,該屬性為實例屬性
    • 在第 13 行,調(diào)用對象 liu 的方法 introduce,對象 liu 被傳遞給方法 introduce,作為 self 參數(shù),在執(zhí)行 introduce 時,self 參數(shù)指向?qū)ο?liu

3. 類屬性

類屬性是隸屬于類的屬性,用于描述類的特征。

在 Python 中,類屬性在類中的定義如下所示:

class 類名:
    類屬性 =

示例代碼如下:

class Person:
    count = 0

zhou = Person()    
zhou.name = 'Zhou'
zhou.age = 58
Person.count = Person.count + 1
print('Person.count = %d' % Person.count)

liu = Person()
liu.name = 'Liu'
liu.age = 53
Person.count = Person.count + 1
print('Person.count = %d' % Person.count)
  • 在第 1 行,定義了類 Person

  • 在第 2 行,定義了類 Person 的屬性 count,該屬性是類屬性,描述了 Person 對象的數(shù)量

  • 在第 4 行,使用類 Person 創(chuàng)建一個對象 zhou

    • 在第 5 行,設(shè)置對象 zhou 的屬性 name,該屬性為實例屬性
    • 在第 6 行,設(shè)置對象 zhou 的屬性 age,該屬性為實例屬性
  • 因為新創(chuàng)建了一個對象 zhou

    • 在第 7 行,訪問 Person 的類屬性 count,對其增加 1
    • 在第 8 行,打印 Person 的類屬性 count
  • 在第 10 行,使用類 Person 創(chuàng)建一個對象 liu

    • 在第 11 行,設(shè)置對象 liu 的屬性 name,該屬性為實例屬性
    • 在第 12 行,設(shè)置對象 liu 的屬性 age,該屬性為實例屬性
  • 因為新創(chuàng)建了一個對象 liu

    • 在第 13 行,訪問 Person 的類屬性 count,對其增加 1
    • 在第 14 行,打印 Person 的類屬性 count

程序運行輸出如下:

Person.count = 1
Person.count = 2