Pracuję więc nad projektem w Pythonie i staram się go utrzymywać zgodnie ze standardami pylint i ogólnie. Tak, mam plik źródłowy (My właśnie nazwać a.py)"Nieużywane ostrzeżenie o imporcie" i pylint
#a.py
import loggingsetup
def foo():
log.info("This is a log message")
Ale chcę, aby kontrolować, co rejestrowanie wygląda, więc w loggingsetup mam coś takiego:
#loggingsetup.py
import logging
logging.root.setLevel(logging.DEBUG)
consoleOut = logging.StreamHandler()
consoleOut.setLevel(logging.INFO)
consoleOut.setFormatter(logging.Formatter("\t"+logging.BASIC_FORMAT))
logging.root.addHandler(consoleOut)
#etc
Teraz wydaje się działać poprawnie. Przypuszczam, że jako pytanie wstępne powinienem zapytać, czy jest to właściwa droga, czy też istnieje inny sposób strukturyzacji mojego kodu, który byłby lepszy.
Ale moim głównym pytaniem jest to, że gdy uruchamiam pylint na a.py, pojawia się ostrzeżenie typu "nieużywany import - importuj zestaw logów", ponieważ nie wywołuję żadnych metod ani funkcji z zestawu logów.
Mogę zrobić coś jak przedefiniować ciało z funkcją logowania jako funkcję i zadzwonić, ale wydaje się to głupie i podatne na błędy (musiałbym się martwić dwukrotnym wywołaniem, jeśli importowałem zestaw z innego źródła, i jeśli rozumiem, jak Python obsługuje import, to nie jest problem z moją obecną konfiguracją).
Oczywiście mogłem po prostu powiedzieć pylintowi, żeby zignorował ostrzeżenie, ale pomyślałem, że najpierw zapytam tutaj, aby upewnić się, że to nie jest coś, co powinienem potraktować inaczej.
Importowanie moduł tylko dla jego skutków ubocznych czuje się źle ze mną. To sprawia, że intencja twojego kodu jest trudniejsza do rozpoznania. Jawny jest lepszy niż niejawny. –
To tylko ostrzeżenie, że możesz zapomnieć o czymś i/lub robić coś niepotrzebnego. Zignoruj to, jeśli tak nie jest. – martineau
Nie zgadzam się z powyższym sentymentem z Martineau. Tak, czasami tak to się dzieje i musisz zignorować ostrzeżenia, ale zazwyczaj ostrzeżenia nie powinny być traktowane jako "przyjazne przypomnienia" i ignorowane bez pewności, dlatego przyszedłem, aby upewnić się, że mogę to zignorować, lub uzyskać lepsze podejście. – Retsam