Python_TIL_09


Pythonの授業の内容を書いてみます.

カテゴリ


似たようなオブジェクトを1つずつ作成するのは非常に効果的ではありません.classキーを使用してクラスを作成し、名前と同じ属性値のみをパラメータとして新しいオブジェクトを作成できます.
クラス名は大文字を指定します.
きほんけいじょう
class 클래스명:
  def __init__(self, 속성):
    self.속성 = 속성
  def 메서드명():
    메서드 내용

__init__


Javascriptでは、これは関数を構築する方法と同じ脈絡です.
クラス生成時に最初に実行されるメソッドで、パラメータとして入力された属性を整理します.
class Student:
  def __init__(self, name, grade, gender):
    self.name = name
    self.grade = grade
    self.gender = gender

student1 = Student("유재석", 1, "남자")
student2 = Student("박명수", 2, "남자")

print(student1.name, student1.grade, student1.gender)
print(student2.name, student2.grade, student2.gender)

方法


クラス内でメソッドを関数として記述できます.
class Student:
  def __init__(self, name, gender):
    self.name = name
    self.gender = gender

  def to_study(self, time):
    print("공부 중 입니다.")
    print("{}시간 뒤까지 할 예정입니다.".format(time))

student1 = Student("유재석", "남자")

student1.to_sleep(6)
# "공부 중 입니다."
# "6시간 뒤까지 할 예정입니다."

継承


他のクラスのプロパティとメソッドを継承できます.
class Student:
  def __init__(self, name, gender):
    self.name = name
    self.gender = gender

  def to_study(self, time):
    print("공부 중 입니다.")
    print("{}시간 뒤까지 할 예정입니다.".format(time))

class High_student(Student):
  def __init__(self, name, gender, grade):
    Student.__init__(self, name, gender)
    self.grade = grade

  def to_play(self):
    print("친구들과 놀고 있습니다.")

student = High_student("박명수", "남자", 2)

student.to_study(6)
# "공부 중 입니다."
# "6시간 뒤까지 할 예정입니다."
student.to_play() # "친구들과 놀고 있습니다."

たそうきんぞく


クラス継承は、複数のクラスを継承できます.
class Student:
  def __init__(self, name, gender):
    self.name = name
    self.gender = gender

  def to_study(self, time):
    print("공부 중 입니다.")
    print("{}시간 뒤까지 할 예정입니다.".format(time))

class Footballer:
  def __init__(self, position, number):
    self.position = position
    self.number = number

  def to_training(self, time):
    print("훈련 중 입니다.")
    print("{}시간 뒤까지 할 예정입니다.".format(time))

class High_student(Student):
  def __init__(self, name, gender, grade):
    Student.__init__(self, name, gender)
    self.grade = grade

  def to_play(self):
    print("친구들과 놀고 있습니다.")

class High_student_footballer(High_student, Footballer):
  def __init__(self, name, gender, grade, position, number):
    High_student.__init__(name, gender, grade)
    Footballer.__init__(position, number)

student = High_student_footballer("양세형", "남자", 3, "FW", 11)

student.to_play() # "친구들과 놀고 있습니다."
student.to_training(6)
# "훈련 중 입니다."
# "6시간 뒤까지 할 예정입니다."

メソッドオーバーフロー


上記の例では、high studentサッカー選手の訓練が学習であるため、to_trainingメソッドをto_studyに指定してもよい.
class High_student_footballer(High_student, Footballer):
  def __init__(self, name, gender, grade, position, number):
    High_student.__init__(self, name, gender, grade)
    Footballer.__init__(self, position, number)

  def to_study(self, time):
    self.to_training(time)
これにより、selfを使用して方法オーバーライドを行うことができる.

pass


名前通りに行くという意味です.関数の実行を直接スキップします.
class Middle_student(Student):
  def __init__(self, name, gender):
    pass

student = Middle_student("정준하", "남자") # 에러 없이 실행이 종료되었다.

super


クラスが他のクラスを継承する場合は、属性値を関連付ける必要があります.superキーワードを使用して関連付けることができます.superキーワード接続を使用する場合は、selfを省略します.
class Schoolchild(Student):
  def __init__(self, name, gender):
    # Student.__init__(self, name, gender)
    super().__init__(name, gender)

REFERENCE


私もYouTubeでコードしています
Python-正式ドキュメント
Python-WikiDocsにジャンプ