GitHub

https://github.com/Choidongjun0830

노마드 코더 Airbnb 클론 코딩

객체 지향 프로그래밍

gogi masidda 2022. 10. 4. 17:49
class Human:
  def __init__(self,name):
    self.name = name
    
  def say_hello(self):
    print(self.name)

class Player(Human): #Human을 상속
  def __init__(self, name, xp):
    super().__init__(name) #Human의 init 메서드를 호출하는 것을 허용해준다.
    self.xp = xp

class Fan(Human): #Human을 상속
  def __init__(self,name, fav_team):
    super().__init__(name) #super: Human의 init 메서드를 호출하는 것을 허용해준다.
    self.fav_team = fav_team

dongjun_player = Player("dongjun", 1000) #새로운 Player 생성
dongjun_player.say_hello()
dongjun_fan = Fan("dongjun", "dd") #새로운 Fan 생성
dongjun_fan.say_hello()


Python 클래스에는 constructor 이름의 메서드가 없다.

__init__(self):
self는 class 자체를 가리킴. class 안에 있는 “모든” 메서드는 self를 가장 첫번째 매개 변수로 한다.

상속
class를 확장할 수 있게, 즉 코드를 재사용할 수 있게 만듦.
두 개의 클래스에서 반복되는 코드를 저장할 클래스를 따로 만들어야한다. 그 클래스를 부모 클래스로 한다.
super 함수는 Human 클래스에 접근할 수 있는 권한을 준다.


class Dog:
  def __init__(self,name):
    self.name = name
  def __str__(self):
    return f"Dog: {self.name}"
  def __getattribute__(self,name):
    print(f"they want to get {name}")
    return "☺️"
    
jia = Dog("jia")
print(jia.name)
#print(dir(jia))


__str__
클래스가 문자열로써 어떻게 보일지를 결정함. ‘print(클래스)’를 하면, 파이썬은 클래스를 문자열로 변환하려고 할 것이다.

dir
클래스의 속성들과 메서드들을 볼 수있게 해줌.

728x90