ホームページ >バックエンド開発 >Python チュートリアル >Pythonのオブジェクトとオブジェクト指向技術について詳しく解説
この記事の例では、Python オブジェクトとオブジェクト指向テクノロジーについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
1 まず例を見てみましょう この章では、このサンプル プログラムについて説明します。
ファイル: fileinfo.py:リーリー
2 from module import を使用してモジュールをインポートします
前に学習したインポート モジュールは次の構文を使用します:
インポートモジュール名
このように、このモジュールで何かを使用する必要がある場合は、モジュール名.XXX の形式を使用する必要があります。例:リーリー
リーリー
モジュール名インポート名から
またはを使用します
モジュール名 import * から
例:リーリー
リーリー
3 クラス定義
クラスを定義するための構文:
クラスクラス名:
パス
class クラス名 (基本クラスのリスト):
パス
何もしないことを意味します。
クラスにはクラス ドキュメントを含めることもできます。その場合は、クラス定義の最初に含める必要があります。リーリー
リーリー
例:
リーリー
Python では、派生クラスを構築するときに、基本クラスのコンストラクターが「自動的に」呼び出されないことに注意してください。必要に応じて、明示的に記述する必要があります。
すべてのクラス メソッド。最初のパラメーターはこのポインターを受け取るために使用されます。このパラメーターの通常の名前は self.です。
呼び出し時にこのパラメータを渡さないでください。自動的に追加されます。ただし、上記のようなコンストラクターでは、基本クラスの __init() を呼び出すときに、このパラメーターを明示的に指定する必要があります。
4 クラスのインスタンス化
クラスのインスタンス化は他の言語と同様で、クラス名を関数呼び出しとして使用するだけです。他の言語には新しいものなどはありません。
クラス名(パラメータリスト) __init__ の最初のパラメータ self.
をパラメータ リストに指定する必要はありません。例:
a = A()
クラスまたはクラスのインスタンスのドキュメントを表示するには、たとえば、 __doc__ 属性を使用します。
リーリーインスタンスを通じてそのクラスを取得することもできます。これは、例:
です。
リーリークラスのインスタンスを作成した後は、ガベージ コレクションが参照カウントに基づいて未使用のオブジェクトを自動的に破棄します。
リーリー
その後、クラスの定義内で、クラス内でメンバー変数またはメンバー メソッドを使用する場合は、self.name を使用して修飾する必要があります。
したがって、一般的には、任意のメソッドで self.member 名に値を割り当てるだけです。
Python は関数のオーバーロードをサポートしていません。
ここでコードのインデントについて話しましょう。実際、コード ブロックに 1 文しかない場合は、改行やインデント形式を必要とせずにコロンの直後に配置できます。
6 特別なクラスメソッド
通常のメソッドとは異なり、クラスで特別なメソッドを定義した後、それらを明示的に呼び出す必要はありません。代わりに、Python は特定のタイミングでそれらを自動的に呼び出します。
データ項目を取得および設定します。
これには、クラスで __getitem__ メソッドと __setitem__ メソッドを定義する必要があります。
例: リーリー
ここでa[1] は __getitem__ メソッドを呼び出します。これは a.__getitem__(1) と同等です。
__getitem__ メソッドに似ているのは __setitem__ ですたとえば、上記のクラス A で定義されているものは次のとおりです。
リーリー
次に、このメソッドを次のように呼び出します:
__getitem__ __setitem__ と同様に、次のような特別な専用関数もあります。
リーリーなどの組み込み関数を通じて呼び出されます。
リーリーこの repr() は任意のオブジェクトに適用できます。
実際には、対話型ウィンドウで変数名を入力して Enter キーを押すだけで、変数の値が表示されます。
リーリー2つのインスタンスselfとxが等しいかどうかを比較するために使用されます。これは次のように呼ばれます:
这里比较 a和b是否相等. 和调用 a.cmp(b) 一样
def __len__(self): return len(self.li)
它用来返回对象的长度. 在使用 len(对象) 的时候会调用它.
用它可以指定一个你希望的逻辑长度值.
def __delitem__(self, key): del self.li[key]
在调用 del 对象[key] 时会调用这个函数.
8 类属性
类属性指的是象c++中静态成员一类的东西.
Python中也可以有类属性. 例如:
class A : l = [1, 2, 3]
可以通过类来引用(修改). 或者通过实例来引用(修改). 如:
A.l
或
a.__class__.l
9 私有函数
Python中也有"私有"这个概念:
私有函数不可以从它们的模块外边被调用.
私有类方法不能从它们的类外边被调用.
私有属性不能从它们的类外边被访问.
Python中只有私有和公有两种. 没有保护的概念. 而区分公有还是私有是看函数. 类方法. 类属性的名字.
私有的东西的名字以 __ 开始. (但前边说的专用方法(如__getitem__)不是私有的).
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python文件与目录操作技巧汇总》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。