Class
Class
Class
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)を指すと考えられる.
次の例を示します.
冷戦の実例では
name
→ Cold War
genre
→ Romance
running_time
→ 88
Class Method
__init__
でクラスのプロパティを定義することもできます.メソッドをmethodで追加することもできます.
ではattributeとmethodの違いは何ですか?
属性は、そのオブジェクトの名前などによって決定される性質であり、方法は、
move
、eat
などのオブジェクトが実行できる任意の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/
Reference
この問題について(Class), 我々は、より多くの情報をここで見つけました
https://velog.io/@jinatra/Class
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Class), 我々は、より多くの情報をここで見つけました https://velog.io/@jinatra/Classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol