简单的问题,但由于我是python的新手,从php过来,我得到了一些错误。
我有以下简单的类:
User(object)
fullName = "John Doe"
user = User()
在PHP中,我可以执行以下操作:
$param = 'fullName';
echo $user->$param; // return John Doe
我如何在python中执行此操作?
答案 0 :(得分:70)
要访问对象的字段或方法,请使用点.
:
user = User()
print user.fullName
如果将在运行时定义字段名称,请使用buildin getattr
函数:
field_name = "fullName"
print getattr(user, field_name) # prints content of user.fullName
答案 1 :(得分:15)
如果您有字符串形式的属性,请使用getattr
:
>>> class User(object):
name = 'John'
>>> u = User()
>>> param = 'name'
>>> getattr(u, param)
'John'
否则请使用点.
:
>>> class User(object):
name = 'John'
>>> u = User()
>>> u.name
'John'
答案 2 :(得分:2)
如果您需要动态获取对象的属性,请使用getattr()函数:getattr(user, "fullName")
- 或详细说明:
user = User()
property = "fullName"
name = getattr(user, property)
否则只需使用user.fullName
。
答案 3 :(得分:1)
您可以执行以下操作:
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'
例如,可以使用istance检索任何对象属性。