[TIL_Python]55. Class



コメディアン
コメディアンの正体は李英子、宋英伊、楊世亨、劉炳宰だ.
これらのインスタンスをobject(オブジェクト)と呼びます.

クラスの定義


-classキーの使用
class ClassName:
	..class 내용 코드
class名は各単語の大文字を使用します.
1つ以上の単語であれば下線を引かずに単語をつなぎますが、各単語の前半は大文字で単語を区別します.
ex)ScotchWishkey
クラスが定義されると、クラスから実体化(インスタンス化)できます.
hyundai = Car()
bmw = Car()
現代とbmwが対象です.Carclassはまだ空き状態です.
同類の共通点を探せ!自動車インスタントラーメンブランド、エンジン馬力、燃料など

クラスのプロパティ


classで定義される共通要素はclassのattribute(性質または属性)と呼ばれます.
classで属性を定義するには、__init__関数で定義できます.
classで定義されている関数(function)はfunctionではなくmethodです
class Car:
	def __init__(self,maker,model,horse_power):
    	self.maker       =maker
        self.model       =model
        self.horse_power = horse_power

Initメソッド

__init__のように、前後2本の下線の方法を特殊な方法と呼ぶ.
class実体化時に使用する関数.hyundai = Car("현대","제네시스",500) __init__メソッドは呼び出されませんが、クラスが実体化されると__init__メソッドが自動的に呼び出されます.

上の__init__の因子は4つなのに、どうして3つしかあげなかったのですか?
self因子を忘れました...これはとても難しいです.
selfとは、エンティティの単語を指します.したがって、クラスのエンティティとしてのオブジェクトを指します.
ここでは現代やbmwを指す.
その後、クラスが実体化されると、Pythonはそのオブジェクト(self)を__init__関数に渡す.

Class Method


方法と属性の違いは名詞と動詞の違いです
プロパティは、オブジェクトの名前など、指定されたプロパティであり、move、eatなどのオブジェクトが実行できる任意のactionを使用します.
笛の鳴らし方を追加すると
class Car:
    def __init__(self, maker, model, horse_power):
        self.maker       = maker
        self.model       = model
        self.horse_power = horse_power


    def honk(self):
        return "빠라바라빠라밤"
各メソッドにはselfパラメータが最初のパラメータとして必要です.
 hyundai = Car("현대", "제네시스", 500)
hyundai.honk()
> "빠라바라빠라밤"
初めて書いた答えは...本当にできないですね^^
class Database:
  def __init__(self,name,size):
    self.name = name
    self.size = size

  def insert(self,field,value):
    self.field = field
    self.value = value
    if len(self.name) > size:
      pass


  def select(self,field):
    if len(self.name) == 0:
      return None
    else:
      return self.name

  def update(self,field,value):
    if len(field) == 0:
      pass
  def delete(self,field):
    if len(field) == 0:
      pass
2時間以内に解く正解:
class Database:

  def __init__(self,name,size):
    self.name = name
    self.size = size
    self.data = {}

  def insert(self,field,value):
    if len(self.data) < self.size:
      self.data[field] = value

  def select(self,field):
    if field in self.data:
      return self.data[field]
    else:
      return None

  def update(self,field,value):
    if field in self.data:
      self.data[field] = value
    

  def delete(self,field):
    if field in self.data:
      del self.data[field]