如何在python中显示对象属性

时间:2015-03-05 07:06:12

标签: python thrift

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

所以任何人都可以帮助解决这个简单的问题

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

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

在我的服务器大小中,我实现了返回列表的代码。那么如何从客户端(python)的每个考试中读取学生的姓名。

我试过这个:

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

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

3 个答案:

答案 0 :(得分:1)

从我在这里看到的,错误在第二个print。尝试使用:

print("student: %s") i

print("student: " + i)

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

答案 1 :(得分:1)

您的问题就是在迭代mylist时正在打印的内容。对于python中的循环,与java和其他语言中的foreach循环类似:i依次接受mylist中每个iterable的值。 mylist只是一个考试列表(例如思考数组列表)。

所以你想要:

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

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

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

答案 2 :(得分:0)

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

  

vars([object]) - >字典

     

没有参数,相当于locals()。   
使用参数,相当于object.__dict__

示例:

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