[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-04 09:59, Ulli Horlacher <[email protected]> wrote:
> Peter J. Holzer <[email protected]> wrote:
>> On 2022-12-03 16:56, Ulli Horlacher <[email protected]> wrote:
>>> Deshalb zurueck auf LOS: gibts bei Python keine Moeglichkeit VORAB eine
>>> andere Library unterzuschieben?
>> 
>> Nicht, dass ich wüsste, aber ich wüsste auch nicht, wie das bei Perl
>> gehen soll 
>
> Via environment Variable PERLLIB, analog zu LD_LIBRARY_PATH.

Beides beeinflusst nur, wo Libraries gesucht werden. Es lädt nicht vorab
eine Library. Ich dachte, Du meinst sowas wie LD_PRELOAD (wobei auch das
die Definition von "vorab" etwas dehnt).


>> Du kannst natürlich PYTHONPATH setzen.
>
> Wir kommen der Sache naeher :-)
>
> /usr/lib/python3/dist-packages/duplicity/dup_time.py verwendet 
>
> import time
>
> Um time.asctime() zu ersetzen muesste ich also die Standard time
> Bibliothek durch meine ersetzen und da time.asctime() passend umschreiben?
>
> Leider finde ich kein time.py, wo versteckt sich das Python time Modul?
>

Laut strace löst ein »import time« keinen Filesystem-Zugriff aus, das
Modul dürfte also wohl im Python-Binary eingebaut sein.

Aber time zu ersetzen scheint mir sowieso keine zielführende Taktik zu
sein. Asctime ist ja nicht die einzige Funktion aus diesem Modul, die
verwendet wird. Wie ersetzt Du den Rest?

Wenn Du ein Modul ersetzen willst, dann eher duplicity.dup_time. Das
enthält erstens die Funktion, deren Verhalten Du ändern willst, und
zweitens ist das überschaubarer Python-Code in der Applikation und nicht
ein Python-Core-Modul, das vermutlich an zig anderen Stellen verwendet
wird, an die Du nicht denkst.

Für Monkeypatching müsstest Du eine *andere* Library finden, die zwar
geladen aber nicht verwendet wird (aber warum sollte sie dann geladen
werden), oder deren verwendete Funktionalität so trivial ist, dass sie
leicht ersetzbar ist.

Wenn mich das Datumsformat ausreichend stören würde, würde ich das
Debian-Paket patchen (ich gehe mal davon aus, dass Du das auf mehr als
einem System haben willst). Das ist wahrscheinlich am einfachsten und
saubersten.
_______________________________________________
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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.