获取对象属性
这是个简单的问题,不过我刚开始学Python,之前是用PHP,所以遇到了一些错误。
我有一个简单的类:
User(object)
fullName = "John Doe"
user = User()
在PHP中,我可以这样做:
$param = 'fullName';
echo $user->$param; // return John Doe
那我在Python中该怎么做呢?
4 个回答
4
如果你需要动态地获取一个对象的属性,可以使用 getattr() 这个函数,比如:getattr(user, "fullName")
。简单来说,就是你可以通过这个函数来获取用户的全名。
user = User()
property = "fullName"
name = getattr(user, property)
如果你只是想直接获取属性,那就可以用 user.fullName
这种方式。
17
如果你有一个属性的名字是以字符串形式存在的,可以使用 getattr
函数:
>>> class User(object):
name = 'John'
>>> u = User()
>>> param = 'name'
>>> getattr(u, param)
'John'
如果不是这种情况,就直接用点 .
来访问属性:
>>> class User(object):
name = 'John'
>>> u = User()
>>> u.name
'John'
103
要访问一个对象的属性或方法,可以使用点号 .
:
user = User()
print user.fullName
如果属性的名称是在运行时才确定的,可以使用内置的 getattr
函数:
field_name = "fullName"
print getattr(user, field_name) # prints content of user.fullName