ホームページ  >  記事  >  バックエンド開発  >  Python クラス オブジェクトとインスタンス オブジェクトの違い

Python クラス オブジェクトとインスタンス オブジェクトの違い

(*-*)浩
(*-*)浩オリジナル
2019-07-05 10:21:467029ブラウズ

クラス オブジェクトとインスタンス オブジェクト

Python クラス オブジェクトとインスタンス オブジェクトの違い

簡単な理論: (推奨学習: Python ビデオ チュートリアル)

クラス オブジェクトは、類似の属性とメソッドを持つオブジェクトを 1 つのクラス オブジェクトに要約および抽象化します。類似の属性とメソッドをいくつか定義できます。異なるインスタンス オブジェクトがクラス オブジェクトの属性とメソッドを参照するため、重複を減らすことができますコードのレートです。

インスタンス オブジェクトはインスタンス化されたオブジェクトとも呼ばれ、抽象的なものではなく、オブジェクトのクラス内の特定のオブジェクトです。

比喩の理解:

ちょっとわかりにくい方もいると思いますので、ここでは比喩を使って説明しますので、ご理解いただければ幸いです。まず、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

クラス オブジェクトは、クラス名によって直接表現できるオブジェクトです。2 つをサポートします。操作、属性の直接使用、およびインスタンス化。クラス属性を使用するには、クラス名.属性を直接使用します。クラス メソッドを使用するには、以下に示すように、オブジェクトをインスタンス化し、オブジェクト名を 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。