所以我正在用Python編寫一個程序,它將把我所有的大學課程(來自csv)以及有關它們的打印信息。我寫了一個簡單的課Subject
來更好地管理一切。在我的單身中,甚至幾周,幾周和每週都有課,我有講課,練習和實驗室。所以我的主題類是這樣的:Python類初始化 - 屬性內存
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
類型的字典,像這樣:
even = {"mon":"",
"tue":"",
"wed":"",
"thu":"",
"fri":"",
}
所以我所有的課小時內添加到特定一天的鑰匙。但是有一個問題。例如,可以說編程講座是主題1,編程實驗室是主題2.主題1是在週一的9.15。對象2也在星期一,但是在17.05。所以我有一個功能,它可以檢查主題是偶數/星期還是每週。然後我會在主題1上分配f.e 9.15到even["mon"]
。然後我會去找主題2,並嘗試將17.05加到even["mon"]
。每個主題都是存儲在列表中的其他Subject類對象。但是有一個錯誤。當我試圖添加17.05到主題2s even["mon"]
它添加它,好吧,但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":"",
}
+奇數和所有。那麼爲什麼Python像記住寫入第一個對象屬性的東西呢?
因此,在init方法之上創建屬性是一種不好的做法嗎? – FrynioS
是的,您不需要那樣做,除非您希望這些變量在課程的所有實例中共享。 – user3543300
謝謝,現在我很清楚 – FrynioS