-
[Python] 25. pass와 super, isinstance()Programming/Python 2021. 7. 25. 16:21
[1] pass
class human : def __init__(self, name, age) : pass khumsfcr = human("john", 24)
- pass를 사용하면, 코드를 완성하지 않아도 오류가 발생하지 않는다.
- 클래스의 생성자와 메소드 뿐만 아니라, 일반 함수에서도 사용 가능하다.
[2] super
class human : def __init__(self, name, age) : self.name = name self.age = age def show(self) : print(f"저의 이름은 {self.name}, 나이는 {self.age}") class khumsfcr(human) : def __init__(self, name, age, sex) : super().__init__(name, age) self.sex = sex khumsfcr = khumsfcr("john", 24, "male") khumsfcr.show()
저의 이름은 john, 나이는 24
- super()란, 파생 클래스의 생성자를 정의할 때 사용한다. 본래 정석적인 방법은 부모 클래스의 생성자를 사용하여 파생 클래스의 생성자를 정의하는 것이지만, super()를 활용할 수도 있다.
- super() 사용 시, 전달값으로 self를 입력하지 않아주어도 된다.
- 다만 가장 큰 단점은, super()는 부모 클래스가 누구인지 명시하지 않기 때문에, 다중 상속에서 사용하기에 큰 무리가 있다.
[3] isinstance()
class human : def __init__(self, name, age) : self.name = name self.age = age def show(self) : print(f"저의 이름은 {self.name}, 나이는 {self.age}") class khumsfcr(human) : def __init__(self, name, age, sex) : super().__init__(name, age) self.sex = sex john = khumsfcr("john", 24, "male") print(isinstance(john,khumsfcr)) print(isinstance(john, human))
True True
- isinstance()는, 입력한 인스턴스가 클래스의 인스턴스인지를 확인한 후 True 또는 False를 반환해준다.
*본 글은 코딩 유튜버 '나도코딩'님의 무료강의를 바탕으로 내용을 정리 및 추가한 글입니다.
https://www.youtube.com/watch?v=kWiCuklohdY&t=5934s
'Programming > Python' 카테고리의 다른 글
[Python] 27. 모듈(module)과 패키지(package) (0) 2021.07.26 [Python] 26. 예외 처리 (0) 2021.07.26 [Python] 24. 상속 (0) 2021.07.25 [Python] 23. 클래스(class) (0) 2021.07.25 [Python] 22. with (0) 2021.07.20