Ini adalah solusi semu yang saya buat untuk masalah ini.
#pylint: disable=no-name-in-module
from numpy import array as np_array, transpose as np_transpose, \
linspace as np_linspace, zeros as np_zeros
from numpy.random import uniform as random_uniform
#pylint: enable=no-name-in-module
Kemudian, dalam kode Anda, bukan memanggil numpy
fungsi sebagai np.array
dan np.zeros
dan sebagainya, Anda akan menulis np_array
, np_zeros
, dll Keuntungan dari pendekatan ini vs pendekatan lain yang disarankan dalam jawaban lain:
- Nonaktifkan / aktifkan pylint terbatas pada wilayah kecil kode Anda
- Itu berarti bahwa Anda tidak harus mengelilingi setiap baris yang memiliki doa fungsi numpy dengan arahan pylint.
- Anda tidak melakukan pylint menonaktifkan kesalahan untuk seluruh file Anda, yang mungkin menutupi masalah lain dengan kode Anda.
Kerugian yang jelas adalah bahwa Anda harus mengimpor setiap fungsi numpy yang Anda gunakan secara eksplisit. Pendekatannya bisa dijabarkan lebih lanjut. Anda bisa mendefinisikan modul Anda sendiri, sebut saja katakan, numpy_importer
sebagai berikut
""" module: numpy_importer.py
explicitely import numpy functions while avoiding pylint errors
"""
#pylint: disable=unused-import
#pylint: disable=no-name-in-module
from numpy import array, transpose, zeros #add all things you need
from numpy.random import uniform as random_uniform
#pylint: enable=no-name-in-module
Kemudian, kode aplikasi Anda hanya dapat mengimpor modul ini (bukan numpy) sebagai
import numpy_importer as np
dan menggunakan nama-nama seperti biasa: np.zeros
, np.array
dll
Keuntungan dari ini adalah bahwa Anda akan memiliki satu modul di mana semua numpy
impor terkait dilakukan sekali dan untuk semua, dan kemudian Anda mengimpornya dengan satu baris itu, di mana pun Anda inginkan. Namun Anda harus berhati-hati agar numpy_importer
tidak mengimpor nama yang tidak ada numpy
karena kesalahan tersebut tidak akan ditangkap oleh pylint.