so eine Klasse Modell ich habe und im Inneren Modell habe ich eine Methode speichernin Python, was, wenn eine Instanz einer Klasse geschieht eine @classmethod nennt
def save(self):
args = list(map(self.getValueOrDefault,self.__fields__))
args.append(self.getValueOrDefault(self.__primary_key__))
logging.debug('saving %s' % str(args))
row = yield from execute(self.__insert__,args)
if row != 1:
logging.debug('failed to insert record: affected rows: %s' % row)
else:
logging.info('insertion was succesful')
hier ist der Code für getValueOrDefault, sie im gleichen sind
Klassedef getValueOrDefault(self,key):
value = getattr(self,key)
if value is None:
field = self.__mapping__[key]
if field.default is not None:
value = field.default() if callable(field.default) else field.default
logging.info('using default value for %s ==> %s' % (key,value))
setattr(self,key,value)
return value
wenn ich hinzufügen Class von einer Instanz speichern zu speichern und nenne ich einen Fehler sagen getValueOrDefault zusätzliche Positions Argument ‚Schlüssel‘ erfordert. Meine Vermutung ist, wenn ich es von einer Instanz aus anrufe, ist das Selbst (das zu einem cls wird) die Klasse selbst, nicht die erzeugte Instanz und ich versuche Model.getValueOrDefault zu machen, aber sollte es mir nicht einen Fehler geben, der mir sagt, dass ich es kann Funktion nicht aufrufen, ohne die Klasse zu initialisieren?