溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python里class的寫法是什么

發(fā)布時間:2020-09-02 10:00:56 來源:億速云 閱讀:436 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)python里class的寫法是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

類(Class)和實例(Instance)是面向?qū)ο笞钪匾母拍睢?/span>

類是指抽象出的模板。實例則是根據(jù)類創(chuàng)建出來的具體的“對象”,每個對象都擁有從類中繼承的相同的方法,但各自的數(shù)據(jù)可能不同。

在python中定義一個類:

class Student(object):
    pass

關(guān)鍵字class后面跟著類名,類名通常是大寫字母開頭的單詞,緊接著是(object),表示該類是從哪個類繼承下來的。通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承下來的類。

定義好了 類,就可以根據(jù)Student類創(chuàng)建實例:

>>> class Student(object):
...     pass
...
>>> bart = Student() # bart是Student()的實例
>>> bart
<__main__.Student object at 0x101be77f0>
>>> Student # Student 本身是一個類
<class '__main__.Student'>

可以自由地給一個實例變量綁定屬性,比如,給實例bart綁定一個name屬性:

>>> bart.name = "diggzhang"
>>> bart.name'diggzhang'

類同時也可以起到模板的作用,我們可以在創(chuàng)建一個類的時候,把一些認(rèn)為公共的東西寫進(jìn)類定義中去,在python中通過一個特殊的__init__方法實現(xiàn):

class Student(object):
    """__init__ sample."""
    def __init__(self, name, score):
        self.name = name
        self.score = score

__init__方法的第一個參數(shù)永遠(yuǎn)都是self,表示創(chuàng)建實例本身,在__init__方法內(nèi)部,可以把各種屬性綁定到self,因為self指向創(chuàng)建的實例本身。

有了__init__方法,在創(chuàng)建實例的時候,就不能傳入空的參數(shù)了,必須傳入與__init__方法匹配的參數(shù),但self不需要傳,Python解釋器自己會把實例變量傳進(jìn)去。如下面的類,在新建實例的時候,需要把name和score屬性捆綁上去:

class Student(object):
    """example for __init__ function passin args."""
    def __init__(self, name, score):
        self.name = name
        self.score = score

我們直接看個實例,如果我們老老實實傳name和score進(jìn)去的時候,成功聲明了這個實例,但是只傳一個值的時候,報錯:

In [1]: class Student(object):
   ...:     def __init__(self, name, score):
   ...:         self.name = name
   ...:         self.score = score
   ...:

In [2]: bart = Student('diggzhang', 99)

In [3]: bart.name
Out[3]: 'diggzhang'

In [4]: bart.score
Out[4]: 99

In [5]: bart_test = Student('max')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-97f4e2f67951> in <module>()
----> 1 bart_test = Student('max')

TypeError: __init__() takes exactly 3 arguments (2 given

感謝各位的閱讀!關(guān)于python里class的寫法是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI