Class


Class


Class


Classとは?


クラスとは、データ型のテンプレートに似た概念を指します.
  • ビスケット棚→類
  • ビスケット型のビスケット→対象(object)
  • 「クラス」(class)はテンプレートの概念で、クッキーの型のようなものを作成し続けることができます.
    オブジェクト(object)は、クラスによって作成された結果の概念です.

    クラス定義

    class ClassName:クラスを定義する方法は非常に簡単で、classキーワードを使用するだけでいいです.
    このときクラス名はPascalCaseと呼ばれ、最初の単語の最初の文字から、その後に現れるすべての単語の最初の文字を大文字で指定します.
    # example 
    
    class ThisIsClassName:
      # 내용 코드
    
    class MovieInfo
      # 내용 코드
    classを定義したら、classから実体化(instaniate)できます.
    関数を呼び出す場合と同様にclassを呼び出せばよい.
    # example
    
    cold_war = MovieInfo()
    MovieInfoクラスの実体化は、cold_warというオブジェクト(object)と見なすことができる.

    クラス属性


    classに属するオブジェクトで定義される共通要素
    例えば、MovieInfoクラス.
  • タイプ
  • ランニングマシン
  • ランプも含まれているかもしれません.
    classattributeを定義する場合は、__init__メソッドを使用します.
    # example
    
    class MovieInfo:
        def __init__(self, name, genre, running_time):
            self.name = name
            self.genre = genre
            self.runtime = running_time
    
    cold_war = MovieInfo('Cold War', 'Romance', 88)
    
    print(cold_war.runtime)
    
    
    # Output
    88
    ここで、selfというパラメータはclassのエンティティ(instance)を示す.
    classエンティティとしてのオブジェクト(object)を指すと考えられる.

    次の例を示します.
    冷戦の実例では
  • nameCold War
  • genreRomance
  • running_time88
  • 同じ価値が与えられていると考えられます.

    Class Method

    __init__でクラスのプロパティを定義することもできます.
    メソッドをmethodで追加することもできます.

    ではattributeとmethodの違いは何ですか?


    属性は、そのオブジェクトの名前などによって決定される性質であり、方法は、moveeatなどのオブジェクトが実行できる任意のactionと見なすことができる.
    例えば、以下に示すように、相手がcold_warを見たことがあるかどうかを尋ねる方法を追加することができる.
    (すべての方法でself parameterを1位にしなければならないことに注意してください.)
    # example
    
    class MovieInfo:
        def __init__(self, name, genre, running_time):
            self.name = name
            self.genre = genre
            self.runtime = running_time
    
        def ask(self):
            return f'너 혹시 {self.name} 봤어? {self.runtime}분 짜리 {self.genre} 장르 영환데 진짜 재밌어!'
            
    print(cold_war.ask())
    
    
    # Output
    너 혹시 Cold War 봤어? 88분 짜리 Romance 장르 영환데 진짜 재밌어!

    Take Away


    オブジェクト向けプログラミング


    クラスを主としてコードを記述することをオブジェクト向けプログラミングと呼ぶ.
    確かに、クラスを中心に1つずつ書くと、コードが簡潔になります.
    同じ仕事を何度もすると一気に減ってしまいます.
    問題は私が...ううう

    学んだことを私のやり方で再応用する


    見た通りにするよりも、私の感覚でアレンジして応用し直す方が、理解しやすいと思います.
    上も単純に書いてある車ではなく、映画のコンセプトで作り直したので、もっとぴったりと感じました.
    問題はそう理解するのに長い時間がかかることです...ううう
    リファレンス
    https://wikidocs.net/28
    http://hleecaster.com/python-class/