>  기사  >  백엔드 개발  >  Python 클래스 객체와 인스턴스 객체의 차이점

Python 클래스 객체와 인스턴스 객체의 차이점

(*-*)浩
(*-*)浩원래의
2019-07-05 10:21:467029검색

클래스 객체와 인스턴스 객체

Python 클래스 객체와 인스턴스 객체의 차이점

간단한 이론: (권장 학습: Python 동영상 튜토리얼)

클래스 객체는 유사한 속성과 메소드를 가진 객체를 요약하고 추상화하여 클래스 객체로 만들고, 유사한 객체를 정의할 수 있습니다. 일부 속성 및 메서드, 다양한 인스턴스 개체는 클래스 개체의 속성 및 메서드를 참조하므로 코드 중복률을 줄일 수 있습니다.

인스턴스 개체는 추상 개체가 아니라 개체 클래스의 특정 개체라고도 합니다.

은유적 이해:

어떤 분들은 조금 헷갈리실 것 같아서 여기서는 비유로 설명하겠습니다. 이해해 주시길 바랍니다. 우선, 파이썬에서는 "모든 것이 객체이다"라는 것을 이해해야 합니다. 개인적인 이해:

클래스 객체는 "과일" 바구니와 같습니다. 바구니에 있는 과일은 반복되지 않으므로 바구니에 있는 "과일"은 동일한 클래스에 속하며 추상적입니다. 마치 누군가가 "Give"라고 말하는 것과 같습니다. 나 과일" ", 첫 번째 반응은 "무슨 과일?"이어야하므로 불확실합니다.

바구니에 있는 "사과"와 같은 인스턴스 개체는 특정 개체, 즉 인스턴스입니다. 누군가가 "사과를 줘"라고 말하면 어떤 과일을 선택하고 싶지 않을 것 같습니다.

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 Tutorial 컬럼을 방문하여 알아보세요!

위 내용은 Python 클래스 객체와 인스턴스 객체의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.