No, ima jedna stvar koju stvarno mrzim u pythonu: Importiranje modula. I ne mislim samo na circular dependency, nego na sintaksu. Importirati se može:
import abc.cdeŠto je mnogima zbunjujuće.
from abs import cde
import abc as qwe
from abc import cde as qwe
Ja osobno ne volim nikad koristiti
from abs import cde...zato što, kad jednog dana idem refaktorirati kod i funkciju cde prebacim u neki drugi modul, onda volim imati jednostavan način kako naći sva mjesta gdje se modul koristi. S...
from abc import cde...moram uvijek cde pozivati s abc.cde(). I onda mi je jednostavno u nekom python modulu vidjeti gdje se sve modul koristi. Samo napravim pretraživanje po "abc.".
No.
Mnogi moduli imaju imena koja jednostavno pozivaju da ih se koristi kao imena za varijable.
import timeI onda u kodu pišem npr. time.sleep(). I to je OK, međutim, ako negdje u kodu moram koristiti varijablu "time", onda sam pregazio "time" kojeg sam importirao (jer, importirani time je isto najobičniji objekt koji ima funkcije kao metode, isl...).
Tako da sam ja na kraju počeo apsolutno svugdje importirati na jedan i samo jedan način:
import logging as mod_loggingDakle, uvijek samo jedan način importiranja i uvijek modul importiram s aliasem koji ima prefix "mod_". Dakle, išlo bi "import time as mod_time", i onda svugdje u kodu jednostavno vidim kad se neki modul koristi. Module koji imaju jednostavna imena neću nikad pomiješati s istoimenim varijablama, isl.
import math as mod_math
import datetime as mod_datetime
import utils as mod_utils
import copy as mod_copy
import geo as mod_geo
Ima li neki pythonist koji ovo čita sa stavom/idejama/(protu)argumentima ovakvom pristupu?
Nema komentara:
Objavi komentar