在我的项目中,我必须通过将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
答案 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}