그래서 필자는 Python으로 모든 대학 수업 (csv에서)을 가져 와서 그들에 대한 정보를 인쇄하는 프로그램을 작성했습니다. 나는 모든 것을 더 잘 관리하기 위해 간단한 클래스 Subject
을 썼다. 내 유니에서는 심지어 수주, 홀수 주, 매주 수업이 있으며 강의, 연습 및 실험실이 있습니다. 그래서 내 주제 클래스는 다음과 같이이다 :파이썬 클래스 초기화 - 속성 메모리
even = {"mon":"",
"tue":"",
"wed":"",
"thu":"",
"fri":"",
}
그래서 내가 특정 모든 클래스 시간을 추가 할 수 있습니다 같은
class Subject:
number = 0
name = ""
dummyData = []
even = {}
odd = {}
all = {}
type = ""
def __init__(self, name, number, type):
self.name = name
self.number = number
self.type = type
self.info = str(number) + " " + name + " " + type
이전
나는 모든 일 even
로 작성했다 odd
및 all
dicts, 하루 키. 그러나 문제가있었습니다. 예를 들어, 강의 프로그래밍은 주 1이고 프로그래밍 실험실은 과목 2입니다. 과목 1은 월요일 9.15에 있습니다. 주제 2는 월요일에도 있지만 17.05에 있습니다. 그래서 나는 피사체가 짝수/홀수 주에 있는지 또는 매주인지를 확인하는 기능이 있습니다. 그리고 피사체 1의 f.e 9.15를 even["mon"]
에게 할당합니다. 그러면 피사체 2에 가서 17.05를 even["mon"]
에 추가하려고했습니다. 모든 주제는 목록에 저장된 다른 주제 클래스 객체였습니다. 그러나 실수가있었습니다. 내가 주제 2에에 17.05를 추가하려고 시도했을 때, 그것을 더했다. 그렇지만 even["mon"]
은 ="17.05"
이되어야하지만, ="9.15/17.05"
이었다. 에서 내 수업을 변경하여, 나는 밖으로 무슨 잘못 이해하려고 노력하였고, 마침내 한 :
class Subject:
number = 0
name = ""
dummyData = []
even = {"mon":"",
"tue":"",
"wed":"",
"thu":"",
"fri":"",
}
...etc...
type = ""
def __init__(self, name, number, type):
self.name = name
self.number = number
self.type = type
self.info = str(number) + " " + name + " " + type
에 :
class Subject:
number = 0
name = ""
dummyData = []
even = {}
odd = {}
all = {}
type = ""
def __init__(self, name, number, type):
self.name = name
self.number = number
self.type = type
self.info = str(number) + " " + name + " " + type
self.even = {"mon":"",
"tue":"",
"wed":"",
"thu":"",
"fri":"",
}
+ 홀수 모든. 그렇다면 왜 파이썬은 첫 번째 객체 속성에 무엇이 기록되어 있는지 기억하는 것과 같은 것입니까?
init 메소드 위에 속성을 작성하는 것은 나쁜 습관입니까? – FrynioS
예, 클래스의 모든 인스턴스에서 변수를 공유하지 않으려면 그렇게하지 않아도됩니다. – user3543300
감사합니다. 지금은 분명합니다. – FrynioS