Python--オブジェクト向けとは?


オブジェクトおよびオブジェクト向けの方法:キーワード:class,self,init,str.
現実の生活の中で、すべては対象で、例えば人類、動物、植物、たとえ生命のない自動車、電子製品であっても、あるいは抽象的な天気などはすべて対象で、対象は静的な特徴と動態的な特徴を含んで、静的な例えば物品の色、形状、大きさ、動態は物品の回転、運動などです.オブジェクトの静的特徴は抽象的に属性、すなわち変数になる.動的特徴を抽象的に行為,すなわち方法とする.
step1. クラスの定義
クラスはオブジェクトの青写真とテンプレートであり、クラスがあればオブジェクトを作成できます.
クラスを定義するには、データ抽象と動作抽象の2つのことが必要です.
データ抽象-オブジェクト共通の静的フィーチャー(名詞を探す)-プロパティを抽出します.
動作抽象-オブジェクト共通の動的特徴を抽出する(動詞を探す)-方法
クラスを定義するキーワード-class-クラス名(単語ごとに大文字)
class Student(object):           #    ,         
    def __init__(self,name='none',age=18): #     (   /    - constructor)
                                           #         ,         ,        
                                           #       
        #        
        self._name = name       # __name        ,     name,      。
        self._age = age

    #                      
    #                  self
    #             -   .  (  )
    def study(self,course):
        print('%s    %s' %(self._name, course))

    def watch_av(self):
        if self._age >= 18:
            print('%s           !!' % self._name)
        else:
            print('%s,  %s ,       《   》!' % (self._name,self._age))

小結:これは第一歩で、クラスを定義して、静的特徴を抽象化して、学生にとって、何が静的特徴なのか、例えば名前、年齢;では、ダイナミックな特徴は、学生がテレビを見ることができて、学生が勉強することができて、本を読むことができますなどです.本を読むのは1つの動作で、テレビを見るのは1つの動作で、分けて定義することができます.フレームワークはすべて同じで、静的特徴と動的特徴をつかんで、よく考えて、自分の望む結果を書くことができるはずです.
step2. コンストラクションメソッドを呼び出して学生オブジェクトを作成する
実際に呼び出されたのはStudioクラスのinitメソッドです
def main():
    stu1 = Student('xl')
#    stu1.name = 'xl'

step 3.オブジェクトにメッセージを送信
オブジェクトにメッセージボックスオブジェクトを送信することで、いくつかの作業を完了します.
どんな問題を解決するにも相手にやらせることだ.
stu1.study('Python    ')
    stu2 = Student('yqx')
    stu2.name = 'yc'
    stu2.study('HTML    ')
    stu2.watch_av()


if __name__ == '__main__':
    main()

小結:この部分は学生の動作を完成させ、オブジェクトにメッセージを送ることで対応するいくつかの仕事を完成させ、すべての問題を解決するのはオブジェクトに仕事をさせることによって完成させます.
例:デジタルクロック
class Clock(object):
    def __init__(self,hour=0,minute=0,second=0):
        self._hour = hour
        self._minute = minute
        self._sencond = second

    def run(self):
        """  """
        time_n = [self._hour,self._minute,self._minute]
        self._sencond += 1
        if self._sencond == 60:
            self._sencond = 0
            self._minute += 1
            if self._minute == 60:
                self._minute = 0
                self._hour += 1
                if self._hour == 24:
                    self._hour = 0

    #      __str__(self)              
    #     print             
#    def __str__(self):
#        return ('%02d:%02d:%02d' % (self._hour, self._minute, self._sencond))

    def show(self):
        return ('%02d:%02d:%02d'%(self._hour,self._minute ,self._sencond ))


def main():
    clc = Clock(23,59,58)
    print(clc)
    print(id(clc))
    while True:
        system('cls')
        print(clc.show())
        time.sleep(1)
        clc.run()



if __name__ == '__main__':
    main()

小結:デジタル時計、対象は時間、分、秒で、これらの対象を変更してデジタル時計を完成させ、方法は秒表が60に1、分が60に1、時間が24に0を置いて、デジタル時計の制作を完成することです.