아이공의 AI 공부 도전기

Solution : TypeError: super(type, obj): obj must be an instance or subtype of type

 

해당 문제는 파이썬에서 클래스 이름을 바꾸는 것을 까먹었을 때 생기는 에러입니다.

 

가령 예를 들어보면 일반적인 class의 init은 아래와 같을 것입니다. 해당 내용은 상속을 받든 아니든 상관없습니다.

 

class New_class():
	def __init__(self, **kwargs):
    	super(New_class, self).__init__()        

그러나 만약 class의 이름을 바꾸는 일이 생겼을 때의 예를 살펴봅시다.

기존의 class 이름을 New_class에서 New_class2로 바꾸는 일이 생겼을 때 해당 에러가 뜹니다.

class New_class2():
	def __init__(self, **kwargs):
    	super(New_class, self).__init__()        

즉 이에 대한 해결책으로 2가지를 제시해드릴 수 있습니다.

 

Sol 1. "super(New_class, self).__init__()" -> "super(New_class2, self).__init__()"

 

Sol 2. "class New_class2" -> "class New_class"

 

둘 중 하나로 수정하신다면 해당 에러가 생기지 않습니다.

이해가 되셨나요?

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading