黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

python筆記——__init__方法與self詳解

系統 2632 0

前后都加雙下劃綫的方法在python中是獨一無二的,加下劃線的目的在于避免與普通方法名稱沖突。
本文中主要深入理解在定義類的時候必須用到的__init__方法。
在進行詳細敘述之前,給大家普及一下,類中的方法和屬性。

  • 方法:也就是各類中定義的函數,比如我們定義一個車的類,描述車的函數就是一個方法。
  • 屬性:車的品牌、型號、生產日期等信息就是它的屬性

1、__init__方法:無需直接調用,生成實例對象的時候自動調用。


“init”的全稱是“initialize”,也就是初始化的意思,所以__init__又稱構造方法。

在定義類的時候__init__()方法是必不可少的。
init()這種初始化方法,用來初始化新創建對象的屬性,在一個對象被創建以后會立即調用,比如像實例化一個類:

demo

            
              
                class
              
              
                Car
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                ,
              
              make
              
                ,
              
              model
              
                ,
              
              year
              
                )
              
              
                :
              
              
                ###
              
              
        self
              
                .
              
              make 
              
                =
              
               make
        self
              
                .
              
              model 
              
                =
              
               model
        self
              
                .
              
              year 
              
                =
              
               year 
my_car 
              
                =
              
               Car
              
                (
              
              
                'aodi'
              
              
                ,
              
              
                'A4'
              
              
                ,
              
              
                '2010'
              
              
                )
              
              
                print
              
              
                (
              
              my_car
              
                .
              
              model
              
                )
              
            
          
            
              aodi

            
          

程序中沒有直接調用__init__方法,但make,model,year等屬性通過Car()類自動調用了__init__方法,生成了屬性。

2、self參數


“self”的英文意思很明顯,是自己的意思。

這里自己隱含的含義是

  1. 指的是,實例Instance本身。

  2. 同時, 由于說到“自己”這個詞,都是和相對而言的“其他”而說的;而此處的其他,指的是,類Class,和其他變量,比如局部變量,全局變量等。
    此處的self,是個對象(Object),是當前類的實例。
    因此,對應的self.valueName 和 self.function()中的valueName:表示self對象,即實例的變量。與其他的,Class的變量,全局的變量,局部的變量,是相對應的。
    function:表示是調用的是self對象,即實例的函數。與其他的全局的函數,是相對應的。

因為Python已經規定:函數的第一個參數,就必須是實例對象本身,并且約定俗成,把其名字寫為self。因此我們再定義類中的所有函數時必須傳入self參數。

demo

            
              
                class
              
              
                Car
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                ,
              
              make
              
                ,
              
              model
              
                ,
              
              year
              
                )
              
              
                :
              
              
                ###
              
              
        self
              
                .
              
              make 
              
                =
              
               make
        self
              
                .
              
              model 
              
                =
              
               model
        self
              
                .
              
              year 
              
                =
              
               year 
    
              
                def
              
              
                get_descriptive_name
              
              
                (
              
              self
              
                )
              
              
                :
              
              
        long_name 
              
                =
              
               self
              
                .
              
              year
              
                +
              
              
                ' '
              
              
                +
              
              self
              
                .
              
              make
              
                +
              
              
                " "
              
              
                +
              
              self
              
                .
              
              model
        
              
                print
              
              
                (
              
              self
              
                )
              
              
                ###看下self指向哪里
              
              
                print
              
              
                (
              
              
                type
              
              
                (
              
              self
              
                )
              
              
                )
              
              
                ###看下self類型是什么
              
              
                return
              
               long_name
my_car 
              
                =
              
               Car
              
                (
              
              
                'aodi'
              
              
                ,
              
              
                'A4'
              
              
                ,
              
              
                '2010'
              
              
                )
              
              
my_car
              
                .
              
              get_descriptive_name
              
                (
              
              
                )
              
            
          

輸出內容:

            
              
                <
              
              __main__
              
                .
              
              Car 
              
                object
              
               at 
              
                0x000001D31F7408D0
              
              
                >
              
              
                ##可以看出self指向的是一個對象,也就是我們用my_car的實例對象 == self
              
              
                <
              
              
                class
              
              
                '__main__.Car'
              
              
                >
              
              
                ## self的類型是Car類的實例對象
              
              
                '2010 aodi A4'
              
            
          

參考文獻:https://www.cnblogs.com/ant-colonies/p/6718388.html


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!?。?/p>

發表我的評論
最新評論 總共0條評論