chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python類的多態(tài)和類的property屬性

python爬蟲知識(shí)分享 ? 來源:python爬蟲知識(shí)分享 ? 作者:python爬蟲知識(shí)分享 ? 2022-03-09 16:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python類的多態(tài)

多態(tài),是指在同一類型下的不同形態(tài)。

比如下面這段代碼

class People:
    def speak(self):
        pass

class American(People):
    def speak(self):
        print("Hello, boys")

class Chinese(People):
    def speak(self):
        print("你好,老鐵")

p1 = American()
p2 = Chinese()

American 和 Chinese 都繼承了 People 類,但他們?cè)?speak() 函數(shù)下,卻有不同的形態(tài)表現(xiàn)。American 說英文,Chinese 說漢語(yǔ)。

倘若現(xiàn)在有一個(gè) do_speak 函數(shù)

def do_speak(people):
    people.speak()

do_speak(p1)
do_speak(p2)

那么無論傳入的 American 實(shí)例還是 Chinese 實(shí)例,只要他有實(shí)現(xiàn) speak 方法都可以。

這就是 Python 中非常有名鴨子類型:一個(gè)對(duì)象只要“看起來像鴨子,走起路來像鴨子”,那它就可以被看做是鴨子。

套入剛剛的代碼實(shí)例中,就是一個(gè)對(duì)象,只要有 speak 方法,那么他就是一個(gè) do_speak 方法所需要的 people 對(duì)象。

類的 property 屬性

在之前的學(xué)習(xí)中,對(duì)象的屬性,我們都是通過把變量值賦值給對(duì)象本身來實(shí)現(xiàn)的。

>>> class Student:pass
...
>>>
>>> s = Student()
>>> s.name = "王炳明"
>>> s.age = 27

直接賦值會(huì)存在一個(gè)問題,就是無法對(duì)屬性值進(jìn)行合法性較驗(yàn),比如我給 age 賦值的是負(fù)數(shù),在業(yè)務(wù)上這種數(shù)據(jù)是不合法的。但上面那種寫法是無法檢查出來的。

>>> s.age = -27
>>> s.age
-27

為了實(shí)現(xiàn)屬性的合法性校驗(yàn),Python 引入的 property 屬性。

請(qǐng)看下面這段代碼

class Student:
    @property
    def age(self):
        return self._age

    @age.setter
    def age(self, value):
        if 0 <= value <= 150:
            self._age = value
        else:
            raise ValueError("Valid value must be in [0, 150]")

此時(shí)再對(duì) age 屬性進(jìn)行賦值就會(huì)對(duì) value 的值進(jìn)行合法性檢查,小于 0 或者 大于 150 的都是不合法數(shù)據(jù)。

>>> s = Student()
>>> s.age = -27
Traceback (most recent call last):
  File "", line 1, in 
  File "", line 10, in age
ValueError: Valid value must be in [0, 150]

由此我們知道了 property ,其實(shí)是 Python 中一個(gè)內(nèi)置的裝飾器,它可以在新式類中把一個(gè)函數(shù) 改造 成屬性。

當(dāng)你讀取屬性值時(shí),會(huì)進(jìn)入被 property 裝飾的函數(shù)。

當(dāng)你對(duì)屬性進(jìn)行賦值時(shí),會(huì)進(jìn)入被 @xx.setter 裝飾的函數(shù)。

兩個(gè)裝飾器,一定是 @property 在前面,而 @xx.setter 在后

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    網(wǎng)線接口能插六網(wǎng)線嗎

    網(wǎng)線接口(RJ45)可以插六網(wǎng)線,但實(shí)際使用效果需結(jié)合具體場(chǎng)景和設(shè)備綜合判斷。以下是詳細(xì)分析: 一、物理兼容性:接口通用,但需注意細(xì)節(jié) RJ45接口標(biāo)準(zhǔn)統(tǒng)一 五(Cat5)、超五
    的頭像 發(fā)表于 09-08 10:32 ?1272次閱讀

    網(wǎng)線面板分五

    網(wǎng)線面板確實(shí)分五和六,這種分類主要基于其適配的網(wǎng)線類型及傳輸性能,以下是具體說明: 一、分類依據(jù) 適配網(wǎng)線類型 五面板:專為五網(wǎng)線(CAT5)設(shè)計(jì),適用于百兆以太網(wǎng)(100Mb
    的頭像 發(fā)表于 08-08 09:46 ?1860次閱讀

    網(wǎng)線能用六水晶頭嗎

    網(wǎng)線可以使用六水晶頭,但需注意兼容性和實(shí)際效果,且通常不建議長(zhǎng)期或關(guān)鍵場(chǎng)景下這樣搭配。 以下是詳細(xì)分析: 一、五網(wǎng)線與六水晶頭的兼容性 物理結(jié)構(gòu)兼容性 線徑與排列:五
    的頭像 發(fā)表于 08-06 10:29 ?3117次閱讀
    五<b class='flag-5'>類</b>網(wǎng)線能用六<b class='flag-5'>類</b>水晶頭嗎

    網(wǎng)線超6與6的區(qū)別

    網(wǎng)線超6(Cat 6a)與6(Cat 6)的主要區(qū)別如下: 1. 傳輸性能 6網(wǎng)線(Cat 6): 支持最高250 MHz的帶寬。 適用于千兆以太網(wǎng)(1 Gbps),最大傳輸距離100米。 超
    的頭像 發(fā)表于 04-16 10:04 ?9318次閱讀

    買水晶頭如何匹配超5 67

    購(gòu)買與超5、6、7網(wǎng)線匹配的水晶頭時(shí),需遵循以下原則,以確保傳輸性能、穩(wěn)定性和兼容性: 一、匹配原則 超5網(wǎng)線 推薦搭配:超5水晶
    的頭像 發(fā)表于 03-26 10:05 ?3491次閱讀

    網(wǎng)絡(luò)線五線和六線有什么區(qū)別

    網(wǎng)絡(luò)線中的五線和六線在多個(gè)方面存在顯著差異,以下是對(duì)這兩網(wǎng)絡(luò)線的詳細(xì)比較: 一、內(nèi)部結(jié)構(gòu) 五線:五線的內(nèi)部結(jié)構(gòu)相對(duì)簡(jiǎn)單,通常沒有特
    的頭像 發(fā)表于 02-26 10:28 ?2382次閱讀

    網(wǎng)線6和7的區(qū)別是什么

    網(wǎng)線6和7的區(qū)別主要體現(xiàn)在以下幾個(gè)方面: 一、傳輸性能 傳輸速率: 六網(wǎng)線(CAT6)支持高達(dá)1Gbps的傳輸速率,適用于千兆以太網(wǎng)。 七網(wǎng)線(CAT7)則支持高達(dá)10Gbps
    的頭像 發(fā)表于 02-10 10:20 ?6884次閱讀

    網(wǎng)線怎么分辨56

    要分辨網(wǎng)線是5還是6,可以從以下幾個(gè)方面進(jìn)行觀察和分析: 一、外觀標(biāo)識(shí) 外皮印刷:正規(guī)的網(wǎng)線外皮上通常會(huì)有明確的標(biāo)識(shí)。5網(wǎng)線的標(biāo)識(shí)一般為“CAT5”或“Cat 5e”(超5),
    的頭像 發(fā)表于 02-08 10:28 ?5534次閱讀

    6水晶頭和5區(qū)別

    水晶頭和五水晶頭在多個(gè)方面存在顯著的區(qū)別,以下是對(duì)這兩者的詳細(xì)比較: 一、結(jié)構(gòu)與設(shè)計(jì) 網(wǎng)線排列:五水晶頭的網(wǎng)線通常呈一字形排列,而六水晶頭的網(wǎng)線則是分成上下兩排且相互錯(cuò)開排列
    的頭像 發(fā)表于 01-17 10:43 ?5160次閱讀

    水晶頭和五水晶頭的兼容性問題

    水晶頭和五水晶頭在兼容性方面存在一些差異,具體體現(xiàn)在以下幾個(gè)方面: 一、物理尺寸與結(jié)構(gòu) 六水晶頭:為了適應(yīng)更粗的六網(wǎng)線(銅芯直徑通常在0.52至0.58毫米之間),六
    的頭像 發(fā)表于 12-31 09:49 ?3467次閱讀

    超五網(wǎng)線與五網(wǎng)線區(qū)別

    隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)據(jù)傳輸速度和網(wǎng)絡(luò)穩(wěn)定性的要求越來越高。在眾多網(wǎng)絡(luò)連接介質(zhì)中,網(wǎng)線因其穩(wěn)定性和成本效益而廣泛使用。五網(wǎng)線(Cat 5)和超五網(wǎng)線(Cat 5e)是兩種常見的網(wǎng)線類型,它們?cè)?/div>
    的頭像 發(fā)表于 12-28 11:37 ?7778次閱讀

    網(wǎng)線5和6插座插口有區(qū)別

    網(wǎng)線5插座和6插座的插口確實(shí)存在一些區(qū)別,主要體現(xiàn)在以下幾個(gè)方面: 一、接口尺寸與結(jié)構(gòu) 5插座:插孔較大,適合較粗的導(dǎo)線。其內(nèi)部結(jié)構(gòu)相對(duì)簡(jiǎn)單,適用于較低速率的網(wǎng)絡(luò)傳輸。 6插座
    的頭像 發(fā)表于 12-05 10:00 ?5724次閱讀

    請(qǐng)問TLV320ADC3101是哪一功放?A還是D

    TLV320ADC3101是哪一功放?A還是D?在數(shù)據(jù)手冊(cè)中的哪一頁(yè)有提到呀?
    發(fā)表于 11-08 07:26

    4網(wǎng)線和6網(wǎng)線區(qū)別

    4網(wǎng)線和6網(wǎng)線在多個(gè)方面存在顯著差異,以下是具體的比較: 一、傳輸性能 傳輸頻率與速率 4網(wǎng)線:傳輸頻率相對(duì)較低,通常在20MHz左右,最高傳輸速率可達(dá)16Mbps。 6網(wǎng)線:
    的頭像 發(fā)表于 11-07 10:16 ?4743次閱讀

    網(wǎng)口能接五網(wǎng)線嗎

    網(wǎng)口能接五網(wǎng)線。六系統(tǒng)向下兼容超五、五以及三系統(tǒng),因此六
    的頭像 發(fā)表于 11-01 09:49 ?1w次閱讀