class는 다들아는것처럼 붕어빵 틀과 같다. 다양한 값을 가진 변수를 생성할 수 있다.
class Person:
def __init__(self, name):
self.name = name
print(f"{self.name} 태어남")
p1 = Person("pymin")
p2 = Person("pymin2")
pymin 태어남
pymin2 태어남
아래처럼 함수추가하면 변수에 .{함수} 로 만든 변수에 함수를 추가로 실행할 수있다.
class Person:
def __init__(self, name):
self.name = name
print(f"{self.name} 태어남")
def school(self, school_name):
print(f"{self.name}이/가 {school_name}에 입학함")
p1 = Person("pymin")
p2 = Person("pymin2")
p1.school("A학교")
p2.school("B학교")
pymin 태어남
pymin2 태어남
pymin이/가 A학교에 입학함
pymin2이/가 B학교에 입학함
class는 상속이 가능하다. 아래처럼 새로 Home이라는 class에 Person을 상속할 수 있다. 그러면 Home이라는 Class는 Person의 기능을 모두 사용 가능하고 특정 부분만 내가 원하는대로 업데이트가 가능하다.
class Person:
def __init__(self, name):
self.name = name
def school(self, school_name):
print(f"{self.name}이/가 {school_name}에 입학함")
class Home(Person):
def __init__(self, name, location):
Person.__init__(self, name)
self.location = location
print(f"{self.name}이/가 {self.location}에서 태어남")
p1 = Home("pymin", "강남")
p2 = Home("pymin2", "강북")
p1.school("초등학교")
pymin이/가 강남에서 태어남
pymin2이/가 강북에서 태어남
pymin이/가 초등학교에 입학함
class 상속은 1개가 아니라 여러개도 가능하다. 아래는 2개를 상속하였다.
class Person:
def __init__(self, name):
self.name = name
def school(self, school_name):
print(f"{self.name}이/가 {school_name}에 입학함")
class Money:
def __init__(self, cash):
self.cash = cash
class Home(Person, Money):
def __init__(self, name, location, cash):
Person.__init__(self, name)
Money.__init__(self, cash)
self.location = location
print(f"{self.name}이/가 {self.location}에서 {self.cash}를 가지고 태어남")
p1 = Home("pymin", "강남" , "100원")
p2 = Home("pymin2", "강북", "500원")
pymin이/가 강남에서 100원를 가지고 태어남
pymin2이/가 강북에서 500원를 가지고 태어남
super()를 통해서 부모 클래스에 접근이 가능하다. (이때 self는 제거) 이렇게 하면 아까 Person.__init__()와 동일하다.
*super()라는 함수를 이용하여 부모 클래스의 __init__() 매직 메소드를 자식 클래스에 실행시킨다고 보면 된다. 매우 자주 쓰인다.
class Person:
def __init__(self, name):
self.name = name
def school(self, school_name):
print(f"{self.name}이/가 {school_name}에 입학함")
class Home(Person):
def __init__(self, name, location):
super().__init__(name)
self.location = location
print(f"{self.name}이/가 {self.location}에서 태어남")
p1 = Home("pymin", "강남" )
p2 = Home("pymin2", "강북")
pymin이/가 강남에서 태어남
pymin2이/가 강북에서 태어남
'Python > Study' 카테고리의 다른 글
python 기초 - 예외 처리 (try, except, finally, Error처리) (1) | 2023.01.15 |
---|---|
python 기초 - 한줄 수식 정리 (for, if 등) + zip, *zip (0) | 2023.01.15 |
python 기초 - 함수 (*args, **kwargs) (0) | 2023.01.15 |
python 기초 - print 활용 (sep, end, r, f , file 등) (0) | 2023.01.15 |
python 기초 - 문자열, lower, upper, index, find, count (0) | 2023.01.15 |