首頁 >後端開發 >Python教學 >Python類別物件實例物件的區別

Python類別物件實例物件的區別

(*-*)浩
(*-*)浩原創
2019-07-05 10:21:467136瀏覽

類別物件與實例物件

Python類別物件實例物件的區別

簡短理論:(推薦學習:Python影片教學

類別物件是將具有相似屬性和方法的物件總結抽象化為類別對象,可以定義相似的一些屬性和方法,不同的實例物件去引用類別物件的屬性和方法,能減少程式碼的重複率。

實例物件又稱實例化對象,不是抽象而是一類對像中具體的一例對象。

比喻理解:

我相信有的人覺得有點繞,在這裡我以比喻說明,希望你能明白。首先,要明白,在python中,「萬物皆對象」。個人理解:

類對象,好比有一籃“水果”,籃子裡面的水果沒有重複,那麼這一籃中的“水果”就屬於一個類,是抽象的,就像有人對你說“給我水果”,你的第一個反應一定是“什麼水果?”,所以是不確定性的。

實例對象,好比籃子裡面的“蘋果”,是一個具體的對象,即一個實例。我想有人對你說“給我蘋果”,你應該不會想選擇哪個水果吧

class Main_class_dll():
      

      def __init__(self):
        dllName = "SessionConnector.dll" 
        dllABSPath = os.path.dirname(os.path.abspath(__file__)) + os.path.sep + dllName
        self.dll = cdll.LoadLibrary(dllABSPath)
        self.session_id=''

      def int_create_(self):
         self.dll.Init.restype = c_bool
         sign = self.dll.Init()

      def Create_Session(self,ip,port):
        self.dll.CreateSession.argtypes=[c_char_p,c_char_p]   #输入参数的格式
        self.dll.CreateSession.restype = c_int;               #输出参数的格式
        self.session_id = self.dll.CreateSession(ip,port);

      def send_recv(self,buf):
        time.sleep(2)
        self.dll.SendSessionMsg.restype = c_bool;
        self.dll.SendSessionMsg.argtypes=[c_int,c_char_p,c_uint]
        ret = self.dll.SendSessionMsg(self.session_id, buf, len(buf) + 1);
        self.dll.RecvSessionMsg.argtypes=[c_int,c_char_p,c_uint,c_int]
        self.dll.RecvSessionMsg.restype = c_bool;
        recv_buf = create_string_buffer(1024);
        ret = self.dll.RecvSessionMsg(self.session_id, recv_buf, 1024, 3000);

        self.dll.DestroySession.restype = c_bool;
        ret = self.dll.DestroySession(self.session_id);

        return recv_buf.value

類對象就是可以用類名字直接使用表示的對象,它支持兩種操作,直接屬性使用和實例化。對於類別屬性的使用,直接使用類別名稱.屬性即可。對於類別方法的使用,需要實例化一個物件後,將物件名稱賦值給self使用,如下所示:

class test:
    data = 1
    def __init__(self):
        self.property=0

    def test2(self):
        print 'hello'

if __name__=='__main__':
    t = test()
    print test.data
    print t.data
    print test.test2
    print t.test2()
    print test.test2(t)

更多Python相關技術文章,請造訪Python教學欄目進行學習!

以上是Python類別物件實例物件的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn