2015-09-14 24 views
5

Widziałem wiele przykładów online z różnymi sposobami modułów . Zastanawiałem się, jaka jest różnica, jeśli chodzi o szybkość, celność, priorytet lub psychologię.Jaka jest różnica między tymi instrukcjami importu?

Pierwszy i najczęściej spotykany;

import sys 
import os 
import socket 
import shutil 
import threading 
import urllib 
import time 
import zipfile 

Rozumiem metodykę, ale wydaje mi się to niepotrzebne, kiedy można z nich korzystać, tak jak ja osobiście;

import sys, os, socket, shutil, threading, urllib, time, zipfile 

Less linie, mniej kodu, mniej bólów głowy, przynajmniej moim zdaniem. Trzeci jednak mnie kłuje;

Jaki jest cel lub cel tej metody importowania? Sądzę, że niewygodne byłoby mieszanie dwóch pierwszych metod, a także bałagan. Wydaje się również, że byłaby wolniejsza niż którakolwiek z metod lub, w najgorszym przypadku, wolniejsza niż obie kombinacje.

Więc, tak jak się zastanawiałem, jaka jest różnica między tymi trzema?

Czy w trzeciej jest jakaś logika, taka jak wzrost prędkości, czy tylko na wygląd?

Odpowiedz

6

Funkcjonalnie, robią to samo. To preferencja stylu. Wiele osób stosuje się do wytycznych w stylu PEP-8 (nr ref .: https://www.python.org/dev/peps/pep-0008/#imports), które stwierdzają, że import powinien odbywać się w osobnych liniach.

+0

Dziękuję za zasoby, ale to tylko stwierdza, co jest dobre, a co złe, dlaczego nie jest dobre, dlaczego jest złe i dlaczego go nie używać. Dziękuję za odpowiedź! –

+1

To dlatego, że nie ma obiektywnie lepszego ani gorszego; to przewodnik stylu, a nie podręcznik reguł. Z pewnością istnieją pewne korzyści, które mu towarzyszą: znacznie łatwiej jest zobaczyć zmiany w importach, jeśli są w wielu liniach podczas korzystania z kontroli wersji, takiej jak git. –

+0

Właśnie zaznaczyłem twoje pytanie jako odpowiedź, ponieważ wydaje się, że twoja odpowiedź jest najlepsza. Wielkie dzięki! –

3

Trzeci grupuje pakiety, które prawdopodobnie będą używane razem. Podczas kopiowania nagłówków (kodu instalacyjnego) z jednego pliku do drugiego ta metoda ułatwia wybór dokładnie zestawu importów potrzebnych do nowego programu.