Considera il seguente codice:
a.py
import os
def print_rand():
print os.urandom()
E un altro modulo:
b.py
from a import *
In questo codice, finisco con una variabile os che viene importata da a . Potrei evitarlo con una piccola modifica:
a.py
import os as _os
def print_rand():
print _os.urandom()
Poiché from a import * non rileva i membri che iniziano con un carattere di sottolineatura, b non importa il modulo os da a .
Ho pensato di farlo in alcuni dei miei codici. Non uso mai import * , ma logicamente, ha comunque un senso. (Per non parlare che non lavoro da solo sul mio codice.) os è un membro che a usa internamente; non è lì per essere esposto al mondo esterno. (Sì, sono consapevole che è possibile accedervi comunque, ma intendo solo nel senso che il trattino basso indica convenzionalmente "privato".)
Questo è qualcosa che dovrei fare? Sarebbe considerato "Pythonic", o è qualcosa che dovrei evitare in particolare? Ha importanza? (Dovrei aver chiesto su StackOverflow? Mi sembra troppo concettuale per me.)