शिकायत करने के लिए मैं पाइथन 2.6 में अपनी खुद की (बहुत सरल) अपवाद कक्षा को परिभाषित करने की कोशिश कर रहा हूं, लेकिन इससे कोई फर्क नहीं पड़ता कि मैं इसे कैसे चेतावनी देता हूं।पायथन के बिना पाइथन में अपवाद को परिभाषित करने के लिए "सही" तरीका
सबसे पहले, सबसे आसान तरीका:
class MyException(Exception):
pass
यह काम करता है, लेकिन क्रम में एक चेतावनी बाहर प्रिंट: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 ठीक है, तो यह है कि जिस तरह से नहीं है। मैं तो कोशिश की:
class MyException(Exception):
def __init__(self, message):
self.message = message
यह भी काम करता है, लेकिन PyLint एक चेतावनी रिपोर्ट: W0231: MyException.__init__: __init__ method from base class 'Exception' is not called
। इसलिए मैंने इसे कॉल करने का प्रयास किया:
class MyException(Exception):
def __init__(self, message):
super(Exception, self).__init__(message)
self.message = message
यह भी काम करता है! लेकिन अब पाइलिंट एक त्रुटि की रिपोर्ट करता है: E1003: MyException.__init__: Bad first argument 'Exception' given to super class
मैं बिना किसी चेतावनी के इतनी सरल चीज़ कैसे कर सकता हूं?
'* लिंट' हमेशा चेतावनी के पक्ष में मिटा दिया गया है जिससे चेतावनी उत्पन्न होती है कि आप वास्तव में परवाह नहीं करते हैं और इसे बंद करने की कोशिश करने के लिए अप्रयुक्त तरीकों को जोड़ने जैसी चीजों को करने के लिए अनचाहे संकेत दे सकते हैं। किसी भी लिंट को शिकायत नहीं करना एक सार्थक लक्ष्य नहीं है, इसकी सभी शिकायतों को समझना है। – msw