파이썬 오류 : NameError: name 'new' is not defined
조회수 1140회
class S(Car):
def __init__(self,type_=""):
self.maxfuel = 60
self.fueleconomy = 10
if (type_ == new):
self.type_ = new
elif (type_ == old):
self.type_ = old
else:
print("new와 old 중 하나만 택하시오.")
이렇게 코드를 작성해서 s1=S(new)
라고 했는데 NameError: name 'new' is not defined
이런 오류가 뜨네요. new
를 어떻게 다시 정의해야 하나요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
new와 old가 무엇인지 지정되지 않아 생기는 문제로 보입니다.
덤으로 초기 타입을 다음과 같이 지정해두면 if문을 하나 줄일 수 있습니다.
class S(Car): def __init__(self, type_ = 'new'): self.maxfuel = 60 self.fueleconomy = 10 self.type_ = 'new' if (type_ == 'old'): self.type_ = 'old'
-
올려주신 코드로만으로 확인할때에는 초보님 말씀처럼
new old 가 무엇인지 지정되지 않아 발생한 문제입니다.
그리고 아래 댓글과 같이 에러 발생한 부분에 대해서는 본 질문에서 반영안된 부분같아
다시 확인해보시는게 좋을거 같습니다.
class Car: def __init__(self): self.test = '' class S(Car): def __init__(self, type_=""): self.maxfuel = 60 self.fueleconomy = 10 if (type_ == "new"): self.type_ = "new" elif (type_ == "old"): self.type_ = "old" else: print("new와 old 중 하나만 택하시오.") def __str__(self): return f'{self.maxfuel} , {self.fueleconomy} , {self.type_}' try: s = S("new") print(s) #60 , 10 , new s1 = Car("") #error except Exception as e: print(e) #__init__() takes 1 positional argument but 2 were given
댓글 입력