Простой вопрос, но поскольку я новичок в python, переходя от php, я получаю несколько ошибок. У меня есть следующий простой класс:
User(object)
fullName = "John Doe"
user = User()
В PHP я мог бы сделать следующее:
$param = 'fullName';
echo $user->$param; // return John Doe
Как это сделать в python?
Вы можете сделать следующее:
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.
Используйте getattr, если у вас есть атрибут в строковой форме:
>>> class User(object):
name = 'John'
>>> u = User()
>>> param = 'name'
>>> getattr(u, param)
'John'
В противном случае используйте точку .:
>>> class User(object):
name = 'John'
>>> u = User()
>>> u.name
'John'
Если вам нужно динамически импортировать свойство объекта, используйте функцию getattr (): getattr(user, "fullName") - или для разработки:
user = User()
property = "fullName"
name = getattr(user, property)
В противном случае просто используйте user.fullName.