プログラミング思想

2713 ワード

プロセス向けプログラミング
POPプロセス向けのプログラム設計思想は,コンピュータプログラムを命令の集合,すなわち関数のセットの順序実行と見なす.プロセス設計向けに、プログラム全体をいくつかの関数モジュールに分割し、各モジュールが問題を解決します.
オブジェクト向けプログラミング
OOPはオブジェクトをプログラムの基本単位とし,1つのオブジェクトにはデータと操作データのメソッド(Method)が含まれる.オブジェクト向けのプログラム設計はコンピュータプログラムを1組のオブジェクトの集合と見なし,各オブジェクトは他のオブジェクトからの情報を受信することができ,コンピュータプログラムの実行は一連の情報が各オブジェクト間で伝達される.
すべてのデータ型(数値、文字列、リスト、メタグループ、辞書)はオブジェクトとみなすことができます.もちろん、オブジェクトをカスタマイズすることもできます.カスタムオブジェクトのデータ型は,オブジェクト内のクラス(Class)に対する概念である.

POP
#        

#  dict       
std1 = { 'name': 'Michael', 'score': 98 }
std2 = { 'name': 'Bob', 'score': 81 }

def print_score(std):
    print('%s: %s' % (std['name'], std['score']))

OOP
まず考えるべきはStudentクラスであり,プログラムの実行フローではない.Studentデータ型は、namescoreの2つの属性(Property)を持つオブジェクトと見なされます.
学生の成績を印刷するには、まずこのStudentオブジェクトを作成し、次に、オブジェクトにprint_score情報を送信し、オブジェクト自身が自分のデータを印刷するようにしなければならない.
class Student(object):
    def __init__(self, name, score):
        # Student       name, score
        self.name = name
        self.score = score

    def print_score(self):
        print('%s: %s' % (self.name, self.score))

lisa = Student('Lisa Simpson', 87)  #       
lisa.print_score()  #       ,        

クラスとインスタンス
OOPには、クラス(Class)とインスタンス(Instance)の2つの重要な概念があります.上記の例に対応して、Studentはクラスであり、Lisaはインスタンスである.
オブジェクト向けの設計思想はClassを抽象化し,Classに基づいてInstanceを作成する.