46

Simple question but since I'm new to python, comming over from php, I get a few errors on it.
I have the following simple class:

User(object) fullName = "John Doe" user = User() 

In PHP I could do the following:

$param = 'fullName'; echo $user->$param; // return John Doe 

How do I do this in python?

2

4 Answers 4

104

To access field or method of an object use dot .:

user = User() print user.fullName 

If a name of the field will be defined at run time, use buildin getattr function:

field_name = "fullName" print getattr(user, field_name) # prints content of user.fullName 
Sign up to request clarification or add additional context in comments.

Comments

17

Use getattr if you have an attribute in string form:

>>> class User(object): name = 'John' >>> u = User() >>> param = 'name' >>> getattr(u, param) 'John' 

Otherwise use the dot .:

>>> class User(object): name = 'John' >>> u = User() >>> u.name 'John' 

Comments

4

If you need to fetch an object's property dynamically, use the getattr() function: getattr(user, "fullName") - or to elaborate:

user = User() property = "fullName" name = getattr(user, property) 

Otherwise just use user.fullName.

Comments

2

You can do the following:

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' 

E.g any object attributes could be retrieved using istance.

1 Comment

But the OP has a string.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.