• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

파이썬 객체지향 강의 ) 메인 파일 실행이 안되는 이유?

22.02.07 17:17 작성 조회수 399

0

클래스 2개랑 메인파일 1개, 총 3개의 .py파일을 연결해서 실행을 하고 싶은데 메인파일을 실행하면 아무 일도 일어나지 않습니다. 뭐가 문제일까요? 

 

# 슈퍼 클래스 Phone 정의

class Phone :
def __init__(self):
self.model = ""
self.color = ""


#메서드 정의
def powerOn(self):
print("전원을 켭니다.")
def powerOff(self):
print("전원을 끕니다.")
def bell(self):
print("띠리링~!")
def sendVoice(self, message):
print("발신 : " + message)
def receiveVoice(self, message):
print("수신 : " + message)
def hangUp(self):
print("전화를 끊습니다.")

 

 

# 폰클래스의 자손 클래스인 DmbPhone

from phone import *

class Dmbphone(Phone):
def __init__(self, model, color, channel):
#super().__init__()
Phone.__init__()

self.model = model
self.color = color
self.channel = channel

def turnOnDmb(self):
print(f"채널 : {self.channel}번 방송수신을 시작합니다.")

def turnOffDmb(self):
print("방송수신을 멈춥니다.")

def changeChannel(self, channel):
print(f"{self.channel}번으로 채널을 변경합니다.")
 
 
 
 
 
 
 
 
 
# 폰클래스와 디엠비폰 클래스를 이용하여 <메인코드> 작성

from Dmb import *


if __name__ == "__main___" :

dm1 = Dmbphone("애플미니", "실버", 10)
print("모델:" ,dm1.model)
print("색상:" ,dm1.color)
print("채널:" ,dm1.channel)

dm1.powerOn()
dm1.bell()
dm1.sendVoice("여보시오!")
dm1.receiveVoice("댁은 누구시죠?")
dm1.sendVoice("나는 000이란 사람이오.")

dm1.hangUp()

dm1.turnOnDmb()
dm1.changeChannel(33)
dm1.turnOffDmb()

답변 1

답변을 작성해보세요.

1

hoyun0131님의 프로필

hoyun0131

2022.02.11

아무것도 안나오시는게 맞나요. 

DmbPhone 의 생성자에서 Phone 생성자를 부를때 self 가 빠졌다고 에러가 나올 것 같아요 .

Phone.__init__(self) 를 하시거나 주석표시하신 부분을 이용하시면 될 것 같네요

부모클래스 생성자 호출을 하지 않아도 결과는 나오더라고요 

class DmbPhone(Phone):
def __init__(self, model, color, ch):

self.model = model
self.color = color
self.ch = ch

답변 감사합니다만 여전히 작동이 안되네요!

실행부분에 있는 print()도 한줄도 안나오는 걸보면 뭔가 문제가 있는 것 같은데 에러 메시지가 안떠서 알 수 가 없네요! 그래도 답변 감사합니다.

hoyun0131님의 프로필

hoyun0131

2022.02.12

이거 그대로 복붙하고 확인해봤습니다.

메인부분 가장 최상단에 print('printTest') 입력해서 실행시켜보니 이것 조차 안나오더라고요 .

그래서 제가 다시 확인해보니 !

if __name__=="__main__" 이 부분에서 "__main___" 이렇게 작성된 것을 확인했습니다. 

'main' 뒷 부분 '_' 언더바가 3개가 입력된 거죠.... : )

아마 앞서 생성자 부분이랑 "__main___" 을 고치시면 제대로 출력될 것 같습니다!

와우 저 부분 몇번은 본거 같은데도 잘못된 줄 몰랐네요! 덕분에 하나 배워갑니다. 다음엔 언더바 세개쓰는 일은 없을 것 같아요. ㅎㅎ 답변 달아주신 덕분에 미루던 인프런 접속도 합니다! 즐거운 주말 보내세요. 정말 감사합니다!