objekte mit python bearbeiten

D

d3f3nd3r

Mitglied
heo

ich arbeite gerade an einer hp mit django und hätte eine frage :
ist es möglich mit einer memberfunktion objekte auszuwählen?

hier der code der funktion in der klasse user :
Code:
    def get_user(self,name):

	# sets /self to the user with /nick = /name
	# if  doesnt exist : return false

		try:
			self = user.objects.get(nick=name)	# searchs the database
			self.save()
			return 1

		except user.DoesNotExist:	
			return false

also ein beispielaufruf :

Code:
finde_user = user ()
find_user.user_get("d3f3nd3r")

die funktion sollte ein vorher leeres objekt vom typ user mit dem gefundenen objekt aus der datenbank initalisieren nur klappt das so nicht ganz, irgendwelche ideen?

mfg
 
OK, ich hoff mal ich erklär das Problem richtig:
Wenn du "self = irgendwas" machst änderst du nur den lokalen Namen "self", nicht aber das Objekt was dahinter steckt (wenn dich, dass verwirrt, lies mal wie Variablen in Python funktionieren), d. h. dass der andere Name "finde_user" immernoch auf das alte Objekt zeigt.
Ein Hack um das Problem herum wäre:
Code:
self.__dict__, self.__class__ = neues_objekt.__dict__, neues_objekt.__class__
Ist aber sicher kein sehr guter Stil sowas zu machen

Edit: Hier nochmal als Verdeutlichung:
Code:
>>> a = "foo"
>>> a
'foo'
>>> b = a
>>> b
'foo'
>>> b = "bar"
>>> b
'bar'
>>> a
'foo'
 
Zuletzt bearbeitet:

Ähnliche Themen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

dovecot und postfix Konfiguration Problem

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Debian squeeze, Webmin, Samba Freigaben

Zurück
Oben