Saya memperhatikan sesuatu yang aneh hari ini yang ingin saya jelaskan. Saya tidak 100% yakin bagaimana mengatakan ini sebagai pertanyaan, jadi google tidak mungkin. Modul logging tidak memiliki akses ke modul logging.handlers karena beberapa alasan aneh. Coba sendiri jika Anda tidak percaya saya:
>>> import logging
>>> logging.handlers
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'handlers'
>>> import logging.handlers
>>> logging.handlers
<module 'logging.handlers' from '/usr/lib/python2.6/logging/handlers.pyc'>
Adakah yang bisa menjelaskan mengapa ini terjadi?
sumber
from module import *
. Itu hampir selalu salah.import zipper
danzipper.open()
Anda akan tahu persis pembukaan mana yang saya panggil. Sebaliknyafrom zipper import *
diikuti olehopen()
apakah itu built-in open atau zipper.open atau sesuatu yang lain.import zipper as z
lebih disukai jika Anda bosan mengetikzipper
numpy import *
karena beberapa fungsi numpy tidak berfungsi kecuali jika Anda mengimpor semua numpy (cacat desain yang buruk pada bagian IMO mereka) tetapi numpy memiliki sejumlah besar objek yang diimpor. Saya akhirnya menimpa banyak fungsi (saya yakin salinannya adalah satu ... Saya terlalu lelah untuk memeriksanya). Sekarang saya mengimpor numpy sebagai np jika saya akan menggunakan numpy begitu banyak sehingga saya tidak tahan untuk mengetiknya berulang kali.Thomas Wouters menjawab pertanyaan ini dengan sangat baik, tetapi sayangnya, saya hanya menemukan pertanyaan ini setelah menemukan jawabannya di dokumentasi aslinya. Untuk itu saya pikir saya akan menambahkan ini dengan harapan itu muncul lebih dekat ke bagian atas mesin pencari di masa depan.
PERTANYAAN
import module_name module_name.sub_module_name(parameter)
MENJAWAB
import module_name
Kontribusi utama dengan jawaban ini adalah penambahan AttributeError saat mencoba mengimpor 'modul' atau 'paket'
Semoga ini bisa membantu seseorang!
sumber
Saya baru-baru ini menghadapi situasi aneh yang sama. Jadi, saya yakin Anda telah menghapus beberapa impor lib pihak ketiga. Lib yang dihapus itu berisi
from logging import handlers
ataufrom logging import *
dan memberi Andahandlers
. Dan di skrip lain Anda memiliki sesuatu yang sepertiimport logging
dan baru saja digunakanlogging.handlers
dan Anda berpikir itulah cara kerja saya.sumber