Get an object attribute
本问题已经有最佳答案,请猛点这里访问。
这个问题很简单,但是由于我对python还不熟悉,而且是从php混合过来的,所以我在这个问题上会遇到一些错误。我有以下简单的课程:
1 2 3 4 | User(object) fullName ="John Doe" user = User() |
在PHP中,我可以执行以下操作:
1 2 | $param = 'fullName'; echo $user->$param; // return John Doe |
号
我如何在Python中执行此操作?
要访问对象的字段或方法,请使用dot
1 2 | user = User() print user.fullName |
如果将在运行时定义字段名称,请使用buildin
1 2 | field_name ="fullName" print getattr(user, field_name) # prints content of user.fullName |
号
如果有字符串形式的属性,请使用
1 2 3 4 5 6 7 | >>> class User(object): name = 'John' >>> u = User() >>> param = 'name' >>> getattr(u, param) 'John' |
否则,请使用dot
1 2 3 4 5 6 | >>> class User(object): name = 'John' >>> u = User() >>> u.name 'John' |
。
如果需要动态获取对象的属性,请使用getattr()函数:
1 2 3 | user = User() property ="fullName" name = getattr(user, property) |
。
否则只需使用
您可以执行以下操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class User(object): fullName ="John Doe" def __init__(self, name): self.SName = name def print_names(self): print"Names: full name: '%s', name: '%s'" % (self.fullName, self.SName) user = User('Test Name') user.fullName #"John Doe" user.SName # 'Test Name' user.print_names() # will print you Names: full name: 'John Doe', name: 'Test Name' |
例如,可以使用ISTACE检索任何对象属性。