मैं अपने अजगर परियोजनाओं के लिए निर्माण की प्रक्रिया में pylint को एकीकृत करना बहुत पसंद करूंगा , लेकिन मैं एक शो-स्टॉपर में चला गया हूं: उन त्रुटि प्रकारों में से एक जो मुझे बहुत उपयोगी लगते हैं--: - E1101: *%s %r has no %r
member*
आम djp फ़ील्ड का उपयोग करते समय अचानक त्रुटियों की रिपोर्ट करता है , उदाहरण के लिए:
E1101:125:get_user_tags: Class 'Tag' has no 'objects' member
जो इस कोड के कारण होता है:
def get_user_tags(username):
"""
Gets all the tags that username has used.
Returns a query set.
"""
return Tag.objects.filter( ## This line triggers the error.
tagownership__users__username__exact=username).distinct()
# Here is the Tag class, models.Model is provided by Django:
class Tag(models.Model):
"""
Model for user-defined strings that help categorize Events on
on a per-user basis.
"""
name = models.CharField(max_length=500, null=False, unique=True)
def __unicode__(self):
return self.name
मैं Pylint को कैसे ठीक से फ़ील्ड में ले जा सकता हूँ जैसे कि वस्तुओं को ध्यान में रखते हुए? (मैं भी Django स्रोत में देखा है, और मैं के कार्यान्वयन को खोजने में असमर्थ रहा है objects
, इसलिए मुझे संदेह है कि यह "सिर्फ" एक वर्ग क्षेत्र नहीं है। दूसरी ओर, मैं अजगर के लिए काफी नया हूं, इसलिए मैं बहुत अच्छी तरह से कुछ की अनदेखी की है।)
संपादित करें: मैंने इन चेतावनियों के बारे में चेतावनी नहीं देने के लिए पाइलिंट को बताने का एकमात्र तरीका टाइप (E1101) की सभी त्रुटियों को रोक दिया है, जो एक स्वीकार्य समाधान नहीं है, क्योंकि वह (मेरी राय में) एक अत्यंत उपयोगी त्रुटि है। अगर वहाँ एक और तरीका है, pylint स्रोत बढ़ाने के बिना, कृपया मुझे बारीकियों को इंगित करें :)
समस्याओं के सारांश के लिए यहाँ देखें pychecker
और pyflakes
- वे सामान्य उपयोग के लिए अस्थिर साबित हुए हैं। (Pychecker के मामले में, क्रैश की उत्पत्ति pychecker कोड में हुई थी - स्रोत नहीं जो इसे लोड कर रहा था / चालान कर रहा था।)