<noframes id="xh9jd"><menuitem id="xh9jd"></menuitem>

      <address id="xh9jd"></address>

        <ol id="xh9jd"><th id="xh9jd"><span id="xh9jd"></span></th></ol>

        <noframes id="xh9jd">

        400-650-7353

        精品課程

        您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】Python類的初始化方法和實例屬性

        【Python基礎知識】Python類的初始化方法和實例屬性

        • 發布: 優就業it培訓
        • 來源:優就業
        • 2021-06-18 18:19:49
        • 閱讀()
        • 分享
        • 手機端入口

        1、__init__()方法和創建實例

        在Python中,每當實例化一個類的新實例時,都會自動調用__init__()構造方法,這個方法可以用于初始化某些變量。

        構造方法是完成實例初始化的魔法方法,方便統一管理屬性。構造方法包括有參構造方法和無參構造方法。

        無參構造方法的基本語法格式如下:

        class 類名(object):

        def __init__(self):

        self.xx = yy

        有參構造方法的基本語法格式如下:

        class 類名(object):

        def __init__(self, 參數1, 參數2):

        self.xx = 參數1

        self.yy = 參數2

        __init__()方法的第一個參數必須是引用調用實例的self,但其實可以為第一個參數指定任意名稱,而不必為self。下面定義了一個Cat類,__init__()的功能僅僅是打印貓叫聲:

        1. >>> class Cat: 
        2. ...     def __init__(self):   # self參數是必須的,且必須為第一個 
        3. ...         print('Meow'
        4. ... 

        以這個Cat類為“原型”,可以創建無數個該類的實例(實例化),創建實例的過程類似于函數調用:

        1. >>> mimi = Cat() 
        2. Meow 
        3. >>> miaomiao = Cat() 
        4. Meow 

        當實例化Cat類時,自動運行__init__()構造方法,打印出了“Meow”。這是因為__init__()方法總是在實例化時自動運行。

        2、實例屬性

        實例屬性是附加到類實例的屬性,在構造方法中定義?梢允褂命c表示法訪問實例屬性。例如,在構造方法中定義名稱和年齡的屬性:

        1. >>> class Cat: 
        2. ...     def __init__(self):   # 構造方法 
        3. ...         self.name = 'Mimi'   # 實例屬性 
        4. ...         self.age = 1   # 實例屬性 
        5. ... 

        將Cat類實例化后訪問實例屬性:

        1. >>> mimi = Cat() 
        2. >>> mimi.name 
        3. 'Mimi' 
        4. >>> mimi.age 
        5. 1

        也可以使用點表示法設置實例屬性:

        1. >>> mimi = Cat() 
        2. >>> mimi.name = 'miaomiao' 
        3. >>> mimi.age = 2 
        4. >>> mimi.name 
        5. 'miaomiao' 
        6. >>> mimi.age 
        7. 2 

        但更常用的做法是,通過構造方法指定實例屬性的值。構造方法除了self參數,還可以包含其他參數:

        1. >>> class Cat: 
        2. ...     def __init__(self, name, age): 
        3. ...         self.name = name 
        4. ...         self.age = age 
        5. ... 
        6. >>> mimi = Cat('Mimi'1)   # 創建一個Cat實例,name為'Mimi',age為1 
        7. >>> mimi.name 
        8. 'Mimi' 
        9. >>> mimi.age 
        10. 1 
        11. >>> miaomiao = Cat('Miaomiao'3
        12. >>> miaomiao.name 
        13. 'Miaomiao' 
        14. >>> miaomiao.age 
        15. 3 

        與給函數的參數設置默認值類似,還可以給實例屬性設置默認值。如果在創建實例時未提供這些值,那么將在之后為其分配值:

        1. >>> class Cat: 
        2. ...     def __init__(self, age, name='Mimi'):  # 給name設置默認值 
        3. ...         self.name = name 
        4. ...         self.age = age 
        5. ... 
        6. >>> mimi = Cat(1)   # 只提供了Cat的name屬性的值 
        7. >>> mimi.name 
        8. 'Mimi' 
        9. >>> mimi.age 
        10. 1 
        11. >>> miaomiao = Cat(3'Miaomiao')   # 如果提供值,那么覆蓋默認值 
        12. >>> miaomiao.name 
        13. 'Miaomiao' 
        14. >>> miaomiao.age 
        15. 3 

        下面給出構造方法指定實例屬性的另一個示例:

        1. >>> class Car(object): 
        2. ...     def __init__(self, color, length, width): 
        3. ...         self.color = color 
        4. ...         self.length = length 
        5. ...         self.width = width 
        6. ... 
        7. >>> falali = Car('白色'41.5
        8. >>> print(falali.color) 
        9. 白色 
        10. >>> print(falali.length) 
        11. 4 
        12. >>> print(falali.width) 
        13. 1.5 

        上述程序定義了一個Car類,該類有一個構造方法,根據類實例化傳入的參數,賦值實例屬性,即車的顏色、長度和寬度。本例實例化時,傳入了參數'白色'、4和1.5,分別對應于車的顏色、長度和寬度。最后打印實例的實例屬性。

        由運行結果可知,實例的三個實例屬性就是在創建實例時傳入的參數值。這是因為在創建實例時,自動運行Car類中的__init__()構造方法,將傳入的參數賦值給實例屬性。

        學習疑問申請解答
        您的姓名
        您的電話
        意向課程
         

        中公優就業

        IT小助手

        掃描上方二維碼添加好友,請備注:599,享學習福利。

        >>本文地址:
        注:本站稿件未經許可不得轉載,轉載請保留出處及源文件地址。

        推薦閱讀

        優就業:ujiuye

        關注中公優就業官方微信

        • 關注微信回復關鍵詞“大禮包”,享學習福利
        QQ交流群
        在線疑問解答
        (加群備注“網站”)
        IT培訓交流群 加入群聊 +
        軟件測試 加入群聊 +
        全鏈路UI/UE設計 加入群聊 +
        Python+人工智能 加入群聊 +
        互聯網營銷 加入群聊 +
        Java開發 加入群聊 +
        PHP開發 加入群聊 +
        VR/AR游戲開發 加入群聊 +
        大前端 加入群聊 +
        大數據 加入群聊 +
        Linux云計算 加入群聊 +
        優就業官方微信
        掃碼回復關鍵詞“大禮包”
        享學習福利

        測一測
        你適合學哪門IT技術?

        1 您的年齡

        2 您的學歷

        3 您更想做哪個方向的工作?

        獲取測試結果
         
        課程資料、活動優惠 領取通道