Juan Christian wrote: > I'm writing a program that have a 'User' class. This class will have the > following attributes: > > 1. id > 2. personaname > 3. lastlogoff > 4. profileurl > 5. avatar > 6. realname > 7. timecreated > 8. loccountrycode > > I'm thinking about writing something like that:
> class User(): > > def __init__(id): > self.__id = id > > [URL Request to call API and get everything using the ID (JSON)] > > self.__personaname = [JSON response personaname] > [...] > > def get_id(): > return __id > > def get_personaname(): > return __personaname > > [...] > Is it a good approach, is this phytonic? It's not a good approach and it's not pythonic. In Python you should avoid accessor functions and (pseudo-)private __attributes ("Python is not Java"). So class User: def __init__(self, id): self.id = id # load attributes self.personname = [personname from JSON] ... user = User(42) is certainly better. You might also consider making the class less dependent of the way you acquire the corresponding data: class User: # in Python 2: class User(object): ... def __init__(self, id, personname, ...) self.id = id self.personname = personname ... @classmethod def from_id(class_, id): # load attributes return User(id, personname, ...) jeff = User(42, "Jeff", ...) jack = User.from_id(43) _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor