Python:オブジェクト向けプログラミング(一)
3535 ワード
Pythonはオブジェクト向けのプログラミング言語です
前言:
オブジェクト向け言語とは,言語におけるすべての操作がオブジェクトによって行われることを簡単に理解する.
まず、プロセス向けのプログラミング言語向けプロセスとは、私たちのプログラムの論理を一つのステップに分解し、各ステップの抽象化を通じてプログラムを完成させることを指す.例えば、子供が学校に通う(7歩に分けて)
プロセス向けのプログラミング思想は1つの機能を1つの小さなステップに分解し、私たちは1つの小さなステップを完成することによって1つのプログラムを完成します.
利点:このプログラミング方式は、私たち人間の思考に合っており、比較的簡単に作成されています.
欠陥:このようにコードを記述するのは往々にして1つの機能にのみ適用され、他の機能を実現するには、機能の差が極めて小さくても、コードを再記述することが多いため、多重性が低く、メンテナンスが困難である.
オブジェクト向けプログラミング言語-オブジェクト向けプログラミング言語、プロセスではなくオブジェクトに注目-オブジェクト向け言語では、すべてがオブジェクトです.たとえば、上記の例を直接書くことができます.
オブジェクト向けのプログラミング思想は、すべての機能を対応するオブジェクトに統一的に保存します.例えば、お母さんの機能をお母さんのオブジェクトに保存し、子供の機能を子供のオブジェクトに保存するには、ある機能を使って、直接対応するオブジェクトを見つければいいです.
利点:この方法で書かれたコードは、読みやすく、メンテナンスが容易で、多重化しやすい.
欠陥:しかし、このような方法で書くのは、通常の思考に合わないので、書くのは少し面倒です.
pythonのクラス:
簡単なクラスを定義classキーワードを使用してクラスを定義します.文法と関数が似ています.
MyClassを使用して、関数を呼び出すようにクラスを使用してオブジェクトを作成するオブジェクトを作成します.
mc ,mc_2, mc_3, mc_4はすべてMyClassの例で、彼らはすべて1種類のオブジェクトです
今、MyClassというクラスで作成したオブジェクトはすべて空のオブジェクトです.つまり、オブジェクトには実際には何もありません.つまり、空のボックスがオブジェクトに変数を追加することができます.オブジェクトの変数は属性構文と呼ばれています.
例:人を表すクラスを定義する
オブジェクトの初期化
前言:
オブジェクト向け言語とは,言語におけるすべての操作がオブジェクトによって行われることを簡単に理解する.
まず、プロセス向けのプログラミング言語向けプロセスとは、私たちのプログラムの論理を一つのステップに分解し、各ステップの抽象化を通じてプログラムを完成させることを指す.例えば、子供が学校に通う(7歩に分けて)
1.
2.
3.
4.
5.
6.
7.
プロセス向けのプログラミング思想は1つの機能を1つの小さなステップに分解し、私たちは1つの小さなステップを完成することによって1つのプログラムを完成します.
利点:このプログラミング方式は、私たち人間の思考に合っており、比較的簡単に作成されています.
欠陥:このようにコードを記述するのは往々にして1つの機能にのみ適用され、他の機能を実現するには、機能の差が極めて小さくても、コードを再記述することが多いため、多重性が低く、メンテナンスが困難である.
オブジェクト向けプログラミング言語-オブジェクト向けプログラミング言語、プロセスではなくオブジェクトに注目-オブジェクト向け言語では、すべてがオブジェクトです.たとえば、上記の例を直接書くことができます.
オブジェクト向けのプログラミング思想は、すべての機能を対応するオブジェクトに統一的に保存します.例えば、お母さんの機能をお母さんのオブジェクトに保存し、子供の機能を子供のオブジェクトに保存するには、ある機能を使って、直接対応するオブジェクトを見つければいいです.
利点:この方法で書かれたコードは、読みやすく、メンテナンスが容易で、多重化しやすい.
欠陥:しかし、このような方法で書くのは、通常の思考に合わないので、書くのは少し面倒です.
pythonのクラス:
簡単なクラスを定義classキーワードを使用してクラスを定義します.文法と関数が似ています.
class ([ ]):
MyClassを使用して、関数を呼び出すようにクラスを使用してオブジェクトを作成するオブジェクトを作成します.
class MyClass():
pass
mc = MyClass() # mc MyClass ,mc MyClass
mc_2 = MyClass()
mc_3 = MyClass()
mc_4 = MyClass()
mc ,mc_2, mc_3, mc_4はすべてMyClassの例で、彼らはすべて1種類のオブジェクトです
isinstance()
オブジェクトがクラスのインスタンスであるかどうかを確認するために使用されます.result = isinstance(mc_2,MyClass)
今、MyClassというクラスで作成したオブジェクトはすべて空のオブジェクトです.つまり、オブジェクトには実際には何もありません.つまり、空のボックスがオブジェクトに変数を追加することができます.オブジェクトの変数は属性構文と呼ばれています.
. =
mc_2.name = ' '
print(mc_2.name)
例:人を表すクラスを定義する
class Person :
# ,
# ,
#
name = 'swk' # ,
# , ,
#
def say_hello(self) :
# ,
# , ,
# p1 , p1
# p2 , p2
# self
# say_hello() , :
# ! xxx
#
print(' ! %s' %self.name)
Person
p1 = Person()
p1.name = ' '
p1.say_hello() # ' ! '
del p1.name # p2 name
オブジェクトの初期化
class Person :
# ( )
# __ ,__
# ,
#
# :
# 1.
# 2.
#
# p1 = Person()
# 1.
# 2.
# 3.__init__(self)
# 4. id
# init
# init
# , init()
def __init__(self,name):
# print(self)
# self
self.name = name
def say_hello(self):
print(' , %s'%self.name)
# , Person name , name
# name , ,
# , , name ,
# ,
# p1 = Person()
# # name
# p1.name = ' '
# p2 = Person()
# p2.name = ' '
# p3 = Person()
# p3.name = ' '
# p3.say_hello()
p1 = Person(' ')
p2 = Person(' ')
p3 = Person(' ')
p4 = Person(' ')
# p1.__init__()
# print(p1.name)
# print(p2.name)
# print(p3.name)
# print(p4.name)
p4.say_hello()