類別物件與實例物件
簡短理論:(推薦學習: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中文網其他相關文章!