鉴于蟒类class Student():
和列表names = []
;然后我想创建多个实例的Student()
并将它们添加到列表中names
,用于存储类实例的Python列表?
names = [] # For storing the student instances
class Student():
def __init__(self, score, gender):
self.score = score
self.gender = gender
现在我要检查出所有的男同学的成绩,我能做到这样?
scores = []
for i in names:
if i.gender == "Male":
scores.append(i.score)
我的问题是:如何创建一个可以(如果可以用任何语句来完成)的列表存储Student
的实例?或者说,当我写names = []
时,我怎么能说出names
中的每个元素都是Student
的一个实例,以便我可以使用该元素的属性,尽管python是弱类型的?我希望我自己清楚;)
我可以写这样的:
for i in range(len(names)):
student = Student()
student = names[i]
if student.gender == "Male":
# Whatever
我不这样想......
响应您的编辑:没有,因为你打电话'学生()你不能写'不带参数,尽管它需要2.如果你删除这条线,它会工作。 – sepp2k 2010-08-14 15:47:59
@ sepp2k,是的,参数不符合Student construtor,所以这会导致错误。好吧,我认为我应该考虑我的问题,因为我现在在表达我的问题时遇到了困难,如果您认为通过代码更多,您可能会了解它失败的位置,但我发布的内容并不是我的观点 – ladyfafa 2010-08-14 15:51:38
。 'student = Student()'这一行试图创建一个新的'Student'实例并将它存储在变量'student'中。这将失败,因为构造函数缺少一些必需的参数。我想你正在试图宣布“学生”的类型?你不必在Python中这样做。它将在运行时为您解决。还要注意,你可以直接在'names'的元素上用''为学生名称:...'进行迭代。 – katrielalex 2010-08-14 18:38:32