यह छद्म समाधान है जो मैं इस समस्या के लिए आया हूं।
#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_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
क्योंकि उन त्रुटियों को पाइलिंट द्वारा नहीं पकड़ा जाएगा।