最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python開(kāi)發(fā)中的Nonetype類(lèi)型詳解

 更新時(shí)間:2023年12月26日 09:19:14   作者:wrr-cat  
這篇文章主要介紹了Python開(kāi)發(fā)中的Nonetype類(lèi)型詳解,None有自己的數(shù)據(jù)類(lèi)型NoneType,你可以將None復(fù)制給任何變量,但是你不能創(chuàng)建其他NoneType對(duì)象,需要的朋友可以參考下

問(wèn)題

今天解決一位網(wǎng)友的問(wèn)題,內(nèi)容如下:請(qǐng)教代碼問(wèn)題

def calc_prod(lst):
    def ff():
        print map(lambda x:x*x,lst)
    return ff
f = calc_prod([1, 2, 3, 4])
print f()

結(jié)果:

[1, 4, 9, 16]
None

這樣寫(xiě)輸出為什么有 None?針對(duì)這一問(wèn)題,自己在 IDEA 中進(jìn)行了調(diào)試,發(fā)現(xiàn)果然多輸出了一行 None。出現(xiàn)這一現(xiàn)象確實(shí)很令人費(fèi)解。

自己寫(xiě)了簡(jiǎn)單的測(cè)試語(yǔ)句,如下:

b = print(5)
print(b)

通過(guò)斷點(diǎn)調(diào)試,內(nèi)容如下:

發(fā)現(xiàn) b 的值確實(shí)為 None,且其類(lèi)型為 NoneType。

什么是 Nonetype?

要理解這個(gè),首先要理解Python對(duì)象,python對(duì)象具有三個(gè)特性:身份、類(lèi)型、值。

這三個(gè)特性在對(duì)象創(chuàng)建時(shí)被賦值。只有值可以改變,其他只讀。類(lèi)型本身也是對(duì)象。

Null與None是Python的特殊類(lèi)型,Null對(duì)象或者是None Type,它只有一個(gè)值None。

它不支持任何運(yùn)算也沒(méi)有任何內(nèi)建方法。None和任何其他的數(shù)據(jù)類(lèi)型比較永遠(yuǎn)返回False。

None有自己的數(shù)據(jù)類(lèi)型NoneType。你可以將None復(fù)制給任何變量,但是你不能創(chuàng)建其他NoneType對(duì)象。

一句話總結(jié):Null對(duì)象是python對(duì)象,又叫做NoneType,None是這個(gè)對(duì)象的值。

看過(guò)了NoneType的解釋?zhuān)猿霈F(xiàn)None就很好理解了。

NoneType之所以出現(xiàn)是因?yàn)槎x了一個(gè)變量或函數(shù),卻沒(méi)有值或者返回值,因此會(huì)默認(rèn)值為None。

而在上面的程序中,雖然高階函數(shù) calc_prod()有返回值 ff,但是 ff()卻沒(méi)有返回值,則傳遞到外層函數(shù) calc_prod()同樣沒(méi)有返回值,故輸出了None。 若代碼改為如下所示,則可以完美實(shí)現(xiàn)列表的輸出。

def calc_prod(lst):
    def ff():
        return map(lambda x:x*x,lst)
    return ff
  f = calc_prod([1, 2, 3, 4])
  print(f())

注意:一個(gè)實(shí)例的私有屬性就是以__開(kāi)頭的屬性,無(wú)法被外部訪問(wèn)。

這些屬性定義有什么用?

雖然私有屬性無(wú)法從外部訪問(wèn),但是,從類(lèi)的內(nèi)部是可以訪問(wèn)的。除了可以定義實(shí)例的屬性外,還可以定義實(shí)例的方法。

實(shí)例的方法就是在類(lèi)中定義的函數(shù),它的第一個(gè)參數(shù)永遠(yuǎn)是 self,指向調(diào)用該方法的實(shí)例本身,其他參數(shù)和一個(gè)普通函數(shù)是完全一樣的。

class Person(object):
    def __init__(self, name):
        self.__name = name
    def get_name(self):
        return self.__name

get_name(self) 就是一個(gè)實(shí)例方法,它的第一個(gè)參數(shù)是 self。__init__(self, name)其實(shí)也可看做是一個(gè)特殊的實(shí)例方法。

調(diào)用實(shí)例方法必須在實(shí)例上調(diào)用:

p1 = Person('Bob')
print p1.get_name()  # self不需要顯式傳入
# => Bob

在實(shí)例方法內(nèi)部,可以訪問(wèn)所有實(shí)例屬性,這樣,如果外部需要訪問(wèn)私有屬性,可以通過(guò)方法調(diào)用獲得,這種數(shù)據(jù)封裝的形式除了能保護(hù)內(nèi)部數(shù)據(jù)一致性外,還可以簡(jiǎn)化外部調(diào)用的難度。

請(qǐng)給 Person 類(lèi)增加一個(gè)私有屬性 __score,表示分?jǐn)?shù),再增加一個(gè)實(shí)例方法 get_grade(),能根據(jù) __score 的值分別返回 A-優(yōu)秀, B-及格, C-不及格三檔。

注意 get_grade()是實(shí)例方法,第一個(gè)參數(shù)為 self。

參考代碼:

class Person(object):
    def __init__(self, name, score):
        self.__name = name
        self.__score = score
    def get_grade(self):
        if self.__score >= 80:
            return 'A'
        if self.__score >= 60:
            return 'B'
        return 'C'
p1 = Person('Bob', 90)
p2 = Person('Alice', 65)
p3 = Person('Tim', 48)
print p1.get_grade()
print p2.get_grade()
print p3.get_grade()

運(yùn)行結(jié)果

到此這篇關(guān)于Python開(kāi)發(fā)中的Nonetype類(lèi)型詳解的文章就介紹到這了,更多相關(guān)Python中的Nonetype內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python logging 重復(fù)寫(xiě)日志問(wèn)題解決辦法詳解

    python logging 重復(fù)寫(xiě)日志問(wèn)題解決辦法詳解

    這篇文章主要介紹了python logging 重復(fù)寫(xiě)日志問(wèn)題解決辦法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python冒泡排序簡(jiǎn)單實(shí)現(xiàn)方法

    python冒泡排序簡(jiǎn)單實(shí)現(xiàn)方法

    這篇文章主要介紹了python冒泡排序簡(jiǎn)單實(shí)現(xiàn)方法,實(shí)例分析了Python冒泡排序的簡(jiǎn)單實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Python?web框架實(shí)現(xiàn)增加BasicAuth認(rèn)證詳解

    Python?web框架實(shí)現(xiàn)增加BasicAuth認(rèn)證詳解

    這篇文章主要為大家詳細(xì)介紹了Python如何在web框架中實(shí)現(xiàn)增加BasicAuth認(rèn)證,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-05-05
  • 分享7個(gè) Python 實(shí)戰(zhàn)項(xiàng)目練習(xí)

    分享7個(gè) Python 實(shí)戰(zhàn)項(xiàng)目練習(xí)

    這篇文章主要介紹了分享7個(gè) Python 實(shí)戰(zhàn)項(xiàng)目代碼,經(jīng)過(guò)Python3.6.4調(diào)試通過(guò)的代碼,就具一點(diǎn)的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • python3實(shí)現(xiàn)多線程聊天室

    python3實(shí)現(xiàn)多線程聊天室

    這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)多線程聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python項(xiàng)目路徑配置超詳細(xì)指南(推薦!)

    Python項(xiàng)目路徑配置超詳細(xì)指南(推薦!)

    在Python項(xiàng)目中路徑管理是一個(gè)重要的方面,它涉及到項(xiàng)目目錄結(jié)構(gòu)、工作目錄的設(shè)置、以及模塊導(dǎo)入等多個(gè)方面,這篇文章主要介紹了Python項(xiàng)目路徑配置的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • pytorch中index_select()的用法詳解

    pytorch中index_select()的用法詳解

    這篇文章主要介紹了pytorch中index_select()的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用TensorFlow搭建一個(gè)全連接神經(jīng)網(wǎng)絡(luò)教程

    使用TensorFlow搭建一個(gè)全連接神經(jīng)網(wǎng)絡(luò)教程

    今天小編就為大家分享一篇使用TensorFlow搭建一個(gè)全連接神經(jīng)網(wǎng)絡(luò)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 詳解用python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)-爬取新浪微博評(píng)論

    詳解用python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)-爬取新浪微博評(píng)論

    這篇文章主要介紹了python爬取新浪微博評(píng)論,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)更新表數(shù)據(jù)接口的功能

    Python實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)更新表數(shù)據(jù)接口的功能

    這篇文章主要給大家介紹了關(guān)于Python如何實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)更新表數(shù)據(jù)接口功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11

最新評(píng)論

交城县| 崇仁县| 调兵山市| 翁源县| 武川县| 和平县| 台湾省| 宁化县| 北流市| 扶余县| 福安市| 莱州市| 临颍县| 古田县| 安溪县| 偏关县| 霍州市| 怀仁县| 平谷区| 南皮县| 巨鹿县| 祁门县| 临安市| 昌黎县| 囊谦县| 大洼县| 柳林县| 拜城县| 佛山市| 青冈县| 临城县| 沙湾县| 南华县| 上高县| 通州区| 竹溪县| 卢龙县| 眉山市| 北宁市| 泌阳县| 奇台县|