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
'노마드 코더 Airbnb 클론 코딩' 카테고리의 다른 글
노마드 코더 에어비앤비 클론 코딩 #7 ORM (0) | 2022.10.19 |
---|---|
노마드 코더 에어비앤비 클론코딩 #6 Models and Admin (0) | 2022.10.17 |
노마드 코더 에어비앤비 클론코딩 #5 USERS APP (1) | 2022.10.13 |
노마드 코더 에어비앤비 클론코딩 #4 App 만들기 (0) | 2022.10.09 |
노마드 코더 에어비앤비 클론코딩 #3 (0) | 2022.10.09 |