Ce este monkey patching-ul în Python și când este acceptabil


Un tutorial Python despre monkey patching și despre când este acceptabil. Explică faptul că class și def sunt instrucțiuni executabile care leagă nume în spații de nume mutabile, deci înlocuirea unei metode la rulare este o atribuire obișnuită, pe care clasa nu o poate detecta, și că instanțele rezolvă metodele pe clasă, la momentul apelului, deci o modificare schimbă obiecte care există deja. Exemple rulabile cu ieșire reală modifică o metodă care face apeluri de rețea și arată o instanță preexistentă preluând modificarea, apoi demonstrează două modificări independente ale unui singur atribut distrugându-se reciproc prin restaurare în ordine greșită, lăsând instalată permanent o implementare învechită. Un exemplu final folosește unittest.mock.patch ca context manager, care restaurează pe fiecare cale de ieșire, și arată tipurile predefinite din C refuzând să fie modificate. Acoperă și monkeypatch din pytest, cârpelile pentru amonte și de ce modificarea interiorului bibliotecilor terțe se rupe între versiuni.

Comentarii

Niciun comentariu încă. Fii primul care își împărtășește părerea.
Avansat
0,0 (0)

Autor

Software engineer and the creator of the Bytestark learning platform