ฉันอยากจะรวมpylintเข้ากับกระบวนการสร้างสำหรับโครงการ python ของฉัน แต่ฉันได้ใช้ในการแสดงครั้งเดียว: หนึ่งในประเภทข้อผิดพลาดที่ฉันพบว่ามีประโยชน์มาก -: - E1101: *%s %r has no %r
member*
รายงานข้อผิดพลาดเมื่อใช้เขตข้อมูล django ทั่วไป , ตัวอย่างเช่น:
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) ซึ่งไม่ใช่วิธีการแก้ปัญหาที่ยอมรับได้เนื่องจากเป็นข้อผิดพลาดที่มีประโยชน์มาก หากมีวิธีอื่นโดยไม่ต้องเพิ่มแหล่งไพลินโปรดชี้ให้ฉันเจาะจง :)
ดูที่นี่สำหรับบทสรุปของปัญหาที่ฉันเคยมีpychecker
และpyflakes
- พวกเขาได้พิสูจน์ให้เป็นที่อยู่ไกลออกไปไม่แน่นอนสำหรับการใช้งานทั่วไป (ในกรณีของพิชเคอเรเตอร์ความผิดพลาดเกิดขึ้นในรหัสพิชเคอเรเตอร์ - ไม่ใช่แหล่งที่มาซึ่งเป็นการโหลด / เรียกใช้)