所以我正在用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