如何在 python 中显示对象属性

How to display object properties in python

在我的项目中,我必须通过将 Thrift 集成到项目中来使用不同语言的用户构建服务器和客户端。所以我决定在 python 中构建客户端。但是我对 python 知之甚少:(

谁能帮忙解决这个简单的问题

假设我有一个 class 具有这些属性:

struct Exam {
    1:i64 examId,
    2:string student,
    3:i64 graded
}

在我的服务器规模中,我已经实现了 return 列表的代码。那么如何在我的客户端读取每次考试的学生姓名 (python)。

我试过这个:

mylist = readExam();
print(mylist)     # This display correctly

#Integrate the list and get the student name
for i in mylist
   print "student: " % mylist.student

据我所见,错误在第二个print。尝试使用:

print("student: %s") i

print("student: " + i)

两者都应该可以正常工作。

尝试使用vars(),它将对象的属性作为字典给出:

vars([object]) -> dictionary

Without arguments, equivalent to locals().
With an argument, equivalent to object.__dict__.

示例:

>>> class MyObj(object):
...    pass
>>> obj = MyObj()
>>> vars(obj)
{}
>>> obj.a = 1
>>> vars(obj)
{'a': 1}

您的问题正是您在遍历 mylist 时打印的内容。 python 中的 for 循环与 java 和其他语言中的 foreach 循环的工作方式类似: i 依次获取 mylist 中每个可迭代对象的值。 mylist 只是一个考试列表(例如,考虑数组列表)。

所以你想要:

for i in mylist:
   print "student: %s" % i.student

或者,在python 3 友好代码中:

for i in mylist:
   print("student: %s" % i.student)