J'ai une question python qui, j'en suis sûr, est assez simple - n'hésitez pas à me désabuser de toute mauvaise pratique pendant que vous y êtes. J'ai le code suivant:python 2.7 __init__ comportement sur soi
class User(dict,BaseDBI):
def __init__(self,uid=None,username=None):
self['uid']=str(uuid())
if uid == None and username is not None:
uid_struct = self.Get('data/username.kch',username)
if uid_struct is not None:
self = self.Get('data/user.kch',uid_struct['uid'])
Comme vous pouvez le dire, cet utilisateur est simplement un objet dict étendu. Il accède également à quelques méthodes Get et Set simples sur un couple de fichiers Kyoto Cabinet db. Je mis dans certaines déclarations d'impression de tracer à travers ce qui se passe et tout est bien réglé, mais lorsque je crée un objet utilisateur (par exemple):
user = User(username='someusername')
puis l'utilisateur d'impression je n'ai qu'un nouvel objet dict qui a le nouveau uid
généré par la première ligne sous __init__
Merci pour toute sagesse!
Quel est le problème? –
pourquoi hérite-t-il de dict de toute façon? Êtes-vous sûr de ne pas vouloir appeler les classes de base '__init__'? Bien sûr, vous obtenez un «dict», ce devrait être un objet qui ressemble à un dict? –