ホームページ  >  記事  >  バックエンド開発  >  Python オブジェクト指向プログラミングのクラスとインスタンスの簡単な説明 (例付き)

Python オブジェクト指向プログラミングのクラスとインスタンスの簡単な説明 (例付き)

不言
不言転載
2018-10-09 15:33:422501ブラウズ

この記事は、Python プログラミングのクラスとインスタンスを簡単に説明 (サンプル付き) したものであり、一定の参考価値があります。

1. 序文

オブジェクト指向プログラミング OOP: オブジェクト指向プログラミング。
OOP ではオブジェクトをプログラムの基本単位として捉え、オブジェクトにはデータとデータを操作するための関数が含まれます。 Python は、オブジェクトを介したメソッド呼び出しを実装するオブジェクト指向プログラミング言語です。

プロセス指向プログラミングでは、コンピューター プログラムを一連のコマンド セット、つまり一連の関数の順次実行とみなします。プログラミングを簡素化するために、プロセス指向の関数は引き続きサブ関数に分割されます。つまり、大きな関数が小さな関数に分割されて、システムの複雑さが軽減されます。
オブジェクト指向プログラミングでは、コンピュータ プログラムをオブジェクトの集合として扱い、各オブジェクトは他のオブジェクトからメッセージを受信し、これらのメッセージを処理できます。コンピュータ プログラムの実行は、各オブジェクト内でオブジェクト間で受け渡される一連のメッセージです。

オブジェクト指向言語の場合、重要な概念はクラスとインスタンスです。クラスは抽象テンプレートであり、インスタンスはクラス テンプレートに基づいて作成されるオブジェクトです。
Python ではすべてのデータ型をオブジェクトとして扱うことができ、もちろんオブジェクトをカスタマイズすることもできます。カスタム オブジェクト データ型は、オブジェクト指向におけるクラスの概念であり、オブジェクトはクラスに基づいて作成されます。
その 3 つの主な特徴は、カプセル化、継承、ポリモーフィズムです。

2. クラス class

クラスは、抽象テンプレートおよびデータ構造です。

構文:
class class_name: pass
class class_name(object): pass

説明:
class は、キーワード class です。クラス名 class_name は通常、大文字で始まります。
object は、このクラスがどのクラスから継承しているかを示します。実際、オブジェクトはすべてのクラスが継承する基本クラスであり、通常は明示的に書き出されません。 (私は通常これを書きます)

たとえば、クラスに生徒がいる場合、生徒の名前、生徒番号、学年、専攻など、この生徒の集合には多くの共通点があります。 、成績、および一連の共通の特徴がある場合、これらを Student クラスに抽象化できます。次のように:

class Student(object):
    pass

上の例では、最初に pass を使用してデモンストレーションします。これは、何もしないことを意味します。

3. インスタンス

クラスを通じて Student インスタンスを作成できます。メソッドは次のとおりです:

>>> bart = Student()        # 变量bart指向的是一个Student的实例 
>>> bart
<__main__.student> # 类object 实例的内存地址
>>> Student                 # 类
<class>     # 返回的是Student 类的属性 class</class></__main__.student>

インスタンスに属性をバインドできますクラスの。

属性は、オブジェクトのデータ要素または関数要素です。たとえば、学生の名前、学生番号、および学生カテゴリのその他の情報です。

「拠点属性識別方式」でアクセスします。

Python は動的言語であり、クラスに基づいて作成されたインスタンスを任意に属性にバインドできます。プロパティをインスタンスにバインドする方法は、インスタンス変数または self 変数を使用します。

>>> bart.name = 'xlp'        # 动态给变量绑定属性
>>> bart.name
'xlp'

プロパティはどのようにバインドされますか? __init__() インスタンス メソッド。
インスタンスが作成されると、Python は __init__() メソッドが実装されているかどうかをチェックします。このメソッドが定義されていない場合、特定の操作はインスタンスに適用されません。特別な操作が必要な場合は、自分自身の方法。つまり、デフォルトであるかカスタマイズされているかに関係なく、 __init()__ が自動的に呼び出されます。

__init__(self)

1. このメソッドの最初のパラメータは常に self で、self は作成されたインスタンス自体を指します;

2. このメソッドを通じて、属性は self が指すインスタンスにバインドされます;

3. __init__() メソッドは None を返します;

4. このメソッドでは、デフォルト パラメーターと位置パラメーターを設定できます。インスタンスを作成するとき、空のパラメータを渡すことはできません。メソッドに一致するパラメータを渡す必要がありますが、self を渡す必要はありません。デフォルトのパラメータは必要に応じて渡されます。

3 番目の点について: インスタンス オブジェクトは自動作成インスタンス呼び出しの後に返されるため、コンストラクター __init__() が定義されている場合はオブジェクトを返すべきではありません。そうしないと競合が発生する可能性があり、インスタンスのみを返します。 None 以外のオブジェクトを返そうとすると、TypeError エラーが報告されます:

Python オブジェクト指向プログラミングのクラスとインスタンスの簡単な説明 (例付き)

インスタンス プロパティの表示: dir()
組み込み関数 dir (class_name) は、クラスの属性を表示できます (例: dir(Student1))。インスタンスのプロパティにアクセスすることもできます。印刷して自分の目で確認してみてください~

以上がPython オブジェクト指向プログラミングのクラスとインスタンスの簡単な説明 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。