파이썬 객체-클래스, 사전 관련 질문입니다

조회수 936회

구현하고자 하는 코드는 클래스를 이용하여 수업명, 교수, 정원, 장소등을 입력 받고 나중에 정원이나 장소를 수정하는 것입니다.

입력받은 내용들을 수업명:객체로 하여 사전에 저장하라는데 menu1에서 그것이 제대로 이루어지고 있는지 확신이 가지 않습니다. 그리고 menu2, 3 실행시 string이 attribute 할 수 없다는 오류가 뜹니다. 형식은 저런식으로 만들어야하긴 하는데 뭔가 잘못한 느낌인데 어디를 어떻게 고쳐야할지 모르겠네요.

classes = {}

class Lecture ()  :
    def __init__(self,name,professor,limit,place) :
        self.name = name
        self.professor = professor
        self.limit = limit
        self.place = place

    def changeLimitOfStudent(self) :
        name.limit = input("Enter new limit of students : ")

    def changePlace(self) :
        name.place = input("Enter new classroom : ")

    def printInfo(self) :
        print("Professor :%s\nNumber of students : %s\nPlace : %s" % (self.professor, self.limit, self.place))

while True :
    print("*"*35,"\n"," "*13,"Time table\n","*"*35)
    print("    1. Open new class\n    2. Change limit of students\n    3.Change classroom\n    4. Print lecture info\n    5.Exit")
    menu = int(input("Choose >> "))

    if menu == 1 :
        name = input("Lecture name : ")
        professor = input("Professor : ")
        limit = input("Limit of student : ")
        place = input("Place : ")
        name = Lecture(name,professor,limit,place)
        classes[name] = Lecture(name,professor,limit,place)

    elif menu == 2 :
        name = input("Enter lecture name : ")
        name.changeLimitOfStudent()

    elif menu == 3 :
        name = input("Enter lecture name : ")
        name.changePlace()

    elif menu == 4 :
        name = input("Enter lecture name : ")
        name.printInfo()

    else :
        break
  • 메뉴2,3에서 에러가 나는 이유는 Lecture 객체 name이 만들어지지 않은 상황에서 name를 사용했기 때문인듯. 그리고 메뉴1의 name도 문제인듯. name = input("Lecture name : "), name = Lecture(name,professor,limit,place), classes[name] = Lecture(name,professor,limit,place) --> 강의이름도 name, 강의객체 이름도 name... 다른 이름으로 변경해야 하지 않을까요 알 수 없는 사용자 2020.6.10 07:46

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)