[Python-de] Re: Funktion ueberschreiben?
"Peter J. Holzer" <[email protected]>
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Organization | LUGA |
| Message-ID | <[email protected]> |
On 2022-12-03 09:53, Stefan Ram <[email protected]> wrote: >=?UTF-8?Q?Mike_M=c3=bcller?= <[email protected]> writes: >>import duplicity.dup_time >>def timetopretty(timeinseconds): >> """Return pretty version of time""" >> return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds)) >>duplicity.dup_time.timetopretty = timetopretty >>ganz zu Beginn des Programms sollte funktionieren. Wichtig ist, dass >>duplicity.dup_time nicht schon vorher importiert wird. Sonst müsstest du es >>vorher aus sys.modules entfernen. > > Diese Einschränkung verstehe ich nicht ganz. Ich dachte, daß sich > das "monkey patching" ab dem Zeitpunkt seiner Ausführung auswirkt. Das kommt darauf an, was importiert wird. Nach einem import duplicity.dup_time referenziert duplicity.dup_time.timetopretty das Objekt, auf das die Variable timetopretty in dup_time gerade verweist, und wenn die geändert wird, hat das den offensichtlichen Effekt Aber mit from duplicity.dup_time import timetopretty wird eine neue lokale Variable timetopretty angelegt, die auf das Objekt zu diesem Zeitpunkt verweist. Wenn man später duplicity.dup_time.timetopretty ändert, zeigt das lokale timetopretty immer noch auf das ursprüngliche Objekt. hp _______________________________________________ python-de Mailingliste -- [email protected] Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected] https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: [email protected]