Це псевдорозв’язок, який я придумав для цієї проблеми.
#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
Потім в коді, замість виклику numpy
функції , як np.array
і np.zeros
і так далі, можна було б написати np_array
, np_zeros
і т.д. Переваги такого підходу в порівнянні з іншими підходами , запропонованими в інших відповідях:
- Відключення / ввімкнення пілінту обмежено невеликою областю коду
- Це означає, що вам не доведеться оточувати кожну окрему рядок, який має виклик функції numpy, за допомогою директиви pylint.
- Ви не робите відключення пілінту помилки для всього файлу, що може замаскувати інші проблеми з вашим кодом.
Очевидним недоліком є те, що вам потрібно чітко імпортувати кожну функцію, що використовується у вашому голові. Підхід можна було б розробити далі. Ви можете визначити свій власний модуль, назвати його так, numpy_importer
як це відбувається
""" 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
Тоді ваш код програми може імпортувати цей модуль лише (а не numpy) як
import numpy_importer as np
і використовувати імена , як зазвичай: np.zeros
,np.array
т.д.
Перевагою цього є те, що у вас буде один модуль, у якому весь numpy
пов'язаний імпорт здійснюється раз і назавжди, а потім ви імпортуєте його за допомогою цього єдиного рядка, куди хочете. Однак ви повинні бути обережними, щоб numpy_importer
не імпортувати імена, у яких не існує, numpy
оскільки ці помилки не підхоплять pylint.