Yang cukup menarik, mengimpor os.path akan mengimpor semua os. coba yang berikut ini di prompt interaktif:
import os.path
dir(os)
Hasilnya akan sama seperti jika Anda baru saja mengimpor os. Ini karena os.path akan merujuk ke modul berbeda berdasarkan sistem operasi yang Anda miliki, jadi python akan mengimpor os untuk menentukan modul mana yang akan dimuat untuk path.
referensi
Dengan beberapa modul, mengatakan import foo
tidak akan mengekspos foo.bar
, jadi saya kira itu sangat tergantung pada desain modul tertentu.
Secara umum, hanya mengimpor modul eksplisit yang Anda butuhkan harus sedikit lebih cepat. Di mesin saya:
import os.path
: 7.54285810068e-06
detik
import os
: 9.21904878972e-06
detik
Waktu-waktu ini cukup dekat sehingga bisa diabaikan. Program Anda mungkin perlu menggunakan modul lain dari os
sekarang atau nanti, jadi biasanya masuk akal hanya mengorbankan dua mikrodetik dan gunakan import os
untuk menghindari kesalahan ini di lain waktu. Saya biasanya berpihak dengan hanya mengimpor os secara keseluruhan, tetapi dapat melihat mengapa beberapa lebih suka secara import os.path
teknis lebih efisien dan menyampaikan kepada pembaca kode bahwa itu adalah satu-satunya bagian dari os
modul yang perlu digunakan. Ini pada dasarnya bermuara pada pertanyaan gaya dalam pikiran saya.