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

Python中__init__的用法和理解示例詳解

 更新時間:2023年02月10日 11:10:30   作者:luzhan66  
在Python中定義類經(jīng)常會用到__init__函數(shù)(方法),首先需要理解的是,兩個下劃線開頭的函數(shù)是聲明該屬性為私有,不能在類的外部被使用或訪問,從文字理解比較困難,下面通過示例代碼幫助大家理解__init__在python中用法,感興趣的朋友一起看看吧

Python中__init__的用法和理解

在Python中定義類經(jīng)常會用到__init__函數(shù)(方法),首先需要理解的是,兩個下劃線開頭的函數(shù)是聲明該屬性為私有,不能在類的外部被使用或訪問。而__init__函數(shù)(方法)支持帶參數(shù)類的初始化,也可為聲明該類的屬性(類中的變量)。__init__函數(shù)(方法)的第一個參數(shù)必須為self,后續(xù)參數(shù)為自己定義。

從文字理解比較困難,通過下面的例子能非常容易理解這個概念:

例如我們定義一個Box類,有width, height, depth三個屬性,以及計(jì)算體積的方法:

#!/usr/bin/python
# -*- coding utf-8 -*-
#Created by Lu Zhan
 
class Box:
    def setDimension(self, width, height, depth):
        self.width = width
        self.height = height
        self.depth = depth
 
    def getVolume(self):
        return self.width * self.height * self.depth
 
b = Box()
b.setDimension(10, 20, 30)
print(b.getVolume())

我們在Box類中定義了setDimension方法去設(shè)定該Box的屬性,這樣過于繁瑣,而用__init__()這個特殊的方法就可以方便地自己對類的屬性進(jìn)行定義,__init__()方法又被稱為構(gòu)造器(constructor)。

#!/usr/bin/python
# -*- coding utf-8 -*-
#Created by Lu Zhan
 
class Box:
    #def setDimension(self, width, height, depth):
    #   self.width = width
    #   self.height = height
    #   self.depth = depth
    def __init__(self, width, height, depth):
        self.width = width
        self.height = height
        self.depth = depth
 
    def getVolume(self):
        return self.width * self.height * self.depth
 
b = Box(10, 20, 30)
print(b.getVolume())

補(bǔ)充:Python __init__()類構(gòu)造方法

在創(chuàng)建類時,我們可以手動添加一個 __init__() 方法,該方法是一個特殊的類實(shí)例方法,稱為構(gòu)造方法(或構(gòu)造函數(shù))。

構(gòu)造方法用于創(chuàng)建對象時使用,每當(dāng)創(chuàng)建一個類的實(shí)例對象時,Python 解釋器都會自動調(diào)用它。Python 類中,手動添加構(gòu)造方法的語法格式如下:

def __init__(self,...):
? ? 代碼塊

注意,此方法的方法名中,開頭和結(jié)尾各有 2 個下劃線,且中間不能有空格。Python 中很多這種以雙下劃線開頭、雙下劃線結(jié)尾的方法,都具有特殊的意義,后續(xù)會一一為大家講解。

另外,__init__() 方法可以包含多個參數(shù),但必須包含一個名為 self 的參數(shù),且必須作為第一個參數(shù)。也就是說,類的構(gòu)造方法最少也要有一個 self 參數(shù)。例如,仍以 TheFirstDemo 類為例,添加構(gòu)造方法的代碼如下所示:

class TheFirstDemo:
? ? '''這是一個學(xué)習(xí)Python定義的第一個類'''
? ? #構(gòu)造方法
? ? def __init__(self):
? ? ? ? print("調(diào)用構(gòu)造方法")
? ? # 下面定義了一個類屬性
? ? add = 'http://c.biancheng.net'
? ? # 下面定義了一個say方法
? ? def say(self, content):
? ? ? ? print(content)

注意,即便不手動為類添加任何構(gòu)造方法,Python 也會自動為類添加一個僅包含 self 參數(shù)的構(gòu)造方法。

僅包含 self 參數(shù)的 __init__() 構(gòu)造方法,又稱為類的默認(rèn)構(gòu)造方法。

在上面代碼的后面,頂頭(不縮進(jìn))直接添加如下代碼:

zhangsan = TheFirstDemo()

這行代碼的含義是創(chuàng)建一個名為 zhangsan 的 TheFirstDemo 類對象。運(yùn)行代碼可看到如下結(jié)果:

調(diào)用構(gòu)造方法

顯然,在創(chuàng)建 zhangsan 這個對象時,隱式調(diào)用了我們手動創(chuàng)建的 __init__() 構(gòu)造方法。

不僅如此,在 __init__() 構(gòu)造方法中,除了 self 參數(shù)外,還可以自定義一些參數(shù),參數(shù)之間使用逗號“,”進(jìn)行分割。例如,下面的代碼在創(chuàng)建 __init__() 方法時,額外指定了 2 個參數(shù):

class CLanguage:
? ? '''這是一個學(xué)習(xí)Python定義的一個類'''
? ? def __init__(self,name,add):
? ? ? ? print(name,"的網(wǎng)址為:",add)
#創(chuàng)建 add 對象,并傳遞參數(shù)給構(gòu)造函數(shù)
add = CLanguage("腳本之家","http://m.fzitv.net")

注意,由于創(chuàng)建對象時會調(diào)用類的構(gòu)造方法,如果構(gòu)造函數(shù)有多個參數(shù)時,需要手動傳遞參數(shù),傳遞方式如代碼中所示(后續(xù)章節(jié)會做詳細(xì)講解)。

運(yùn)行以上代碼,執(zhí)行結(jié)果為:
腳本之家 的網(wǎng)址為: //m.fzitv.net

可以看到,雖然構(gòu)造方法中有 self、name、add 3 個參數(shù),但實(shí)際需要傳參的僅有 name 和 add,也就是說,self 不需要手動傳遞參數(shù)。

關(guān)于 self 參數(shù),后續(xù)章節(jié)會做詳細(xì)介紹,這里只需要知道,在創(chuàng)建類對象時,無需給 self 傳參即可。

到此這篇關(guān)于Python中__init__的用法和理解的文章就介紹到這了,更多相關(guān)__init__在python中用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 教你用 Python 發(fā)送告警通知到微信的操作過程

    教你用 Python 發(fā)送告警通知到微信的操作過程

    大家都知道常見的告警方式有:郵件,電話,短信,微信,今天通過本文給大家介紹下Python 發(fā)送告警通知到微信的操作過程,感興趣的朋友一起看看吧
    2022-01-01
  • 一些Python中的二維數(shù)組的操作方法

    一些Python中的二維數(shù)組的操作方法

    這篇文章主要介紹了一些Python中的二維數(shù)組的操作方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python與CNN的碰撞詳解

    Python與CNN的碰撞詳解

    CNN,即卷積神經(jīng)網(wǎng)絡(luò),主要用于圖像識別,分類。由輸入層,卷積層,池化層,全連接層(Affline層),Softmax層疊加而成。卷積神經(jīng)網(wǎng)絡(luò)中還有一個非常重要的結(jié)構(gòu):過濾器,它作用于層與層之間(卷積層與池化層),決定了怎樣對數(shù)據(jù)進(jìn)行卷積和池化
    2022-12-12
  • Python批量處理csv并保存過程解析

    Python批量處理csv并保存過程解析

    這篇文章主要介紹了Python批量處理csv并保存過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 將python包發(fā)布到PyPI和制作whl文件方式

    將python包發(fā)布到PyPI和制作whl文件方式

    今天小編就為大家分享一篇將python包發(fā)布到PyPI和制作whl文件方式,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python實(shí)現(xiàn)百度語音識別api

    python實(shí)現(xiàn)百度語音識別api

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)百度語音識別api,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python下Fabric的簡單部署方法

    Python下Fabric的簡單部署方法

    這篇文章主要介紹了Python下Fabric的簡單部署方法,Fabric是Python下一個流行的自動化工具,需要的朋友可以參考下
    2015-07-07
  • Python中如何避免默認(rèn)參數(shù)的陷阱

    Python中如何避免默認(rèn)參數(shù)的陷阱

    在 Python 中,我們經(jīng)常會使用函數(shù)的默認(rèn)參數(shù)來簡化代碼,但你知道嗎默認(rèn)參數(shù)的行為有時可能會導(dǎo)致一些難以察覺的錯誤,下面小編就為大家介紹一下如何避免這樣的錯誤吧
    2025-01-01
  • Python中read()、readline()和readlines()方法比較及使用詳解

    Python中read()、readline()和readlines()方法比較及使用詳解

    在Python文件操作中,read()、readline()和readlines()是三個常用的文件讀取方法,它們各有特點(diǎn),適用于不同的場景,本文將深入探討這三個方法的區(qū)別、使用場景、性能比較以及最佳實(shí)踐,需要的朋友可以參考下
    2025-03-03
  • Windows下Python3.6安裝第三方模塊的方法

    Windows下Python3.6安裝第三方模塊的方法

    這篇文章主要介紹了Windows下Python3.6安裝第三方模塊的方法,需要的朋友可以參考下
    2018-11-11

最新評論

德清县| 瓮安县| 工布江达县| 平阳县| 喀喇沁旗| 卫辉市| 从化市| 苍南县| 明溪县| 孝感市| 百色市| 荔波县| 清流县| 乌苏市| 历史| 昭苏县| 淄博市| 汤阴县| 孙吴县| 扶余县| 大石桥市| 鸡东县| 吉林市| 聂拉木县| 宁明县| 金坛市| 府谷县| 福建省| 固阳县| 潢川县| 玉屏| 阳东县| 买车| 竹山县| 新安县| 龙里县| 北碚区| 河间市| 峨山| 涞源县| 吉林市|