-
[Python] OOP 객체지향프로그래밍, 생성자, 상속, super()파이썬 2022. 12. 5. 13:55728x90반응형
파이썬의 생성자(constructor) : __init__()
파이썬에서 클래스를 생성할 때 생성자로 __init__키워드를 사용한다.
코드 예시
class Player: def __init__(self, name, xp): self.name = name self.xp = xp def say_hello(self): print(f"hello my name is {self.name}.")
객체 생성하고 메서드 사용하기
wonju = Player("wonju", 1000) wonju.say_hello()
파이썬은 객체 생성에 new 키워드가 필요 없다.
그냥 괄호 안에 바로 넣어주기파이썬의 상속(inheritance)
중복되는 코드를 줄이기 위해 상속을 사용한다.
부모 클래스 Human
class Human: def __init__(self, name): self.name = name def say_hello(self): print(f"hello my name is {self.name}.")
자식 클래스 Player
class Player(Human): def __init__(self, name, xp): self.xp = xp
파이썬은 상속받을 때 extends 키워드가 필요 없다.
자식클래스 괄호 안에 인자로 상속받을 부모클래스 넣어주기근데 이렇게만 작성하면 부모클래스인 Human의 속성 name은 사용하지 못한다. 왜냐하면 아직 name 속성은 상속받지 않았기 때문이다. 부모클래스의 속성에도 접근을 하려면 super()키워드가 필요하다 .
class Player(Human): def __init__(self, name, xp): super().__init__(name) self.xp = xp
wonju = Player("wonju", 1000) wonju.say_hello()
super은 __init__ 메소드에만 사용된다.
만약 부모클래스가 속성을 하나도 가지고 있지 않다면(메소드만 가진 클래스라거나), 자식클래스에서 super() 키워드는 쓸 일이 없음번외. 꿀팁
객체가 가지고 있는 메서드 알아보기
dir키워드를 이용한다.
print(dir(객체))
여기서 dir은 directory를 의미하는데, 해당 클래스가 가지고 있는 속성과 메서드들을 보여준다.
LIST'파이썬' 카테고리의 다른 글
[Python] 리스트가 비어있는지(empty) 확인하기 (0) 2022.12.02