Saya sangat ingin mengintegrasikan pylint ke dalam proses pembangunan untuk proyek python saya, tetapi saya telah mengalami satu show-stopper: Salah satu jenis kesalahan yang saya temukan sangat berguna--: - E1101: *%s %r has no %r
member*
Terus-menerus melaporkan kesalahan saat menggunakan bidang Django umum , sebagai contoh:
E1101:125:get_user_tags: Class 'Tag' has no 'objects' member
yang disebabkan oleh kode ini:
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
Bagaimana saya bisa menyetel Pylint agar mengambil bidang seperti objek dengan benar? (Saya juga telah melihat ke sumber Django, dan saya tidak dapat menemukan implementasi objects
, jadi saya menduga itu bukan "hanya" bidang kelas. Di sisi lain, saya cukup baru untuk python, jadi saya mungkin telah mengabaikan sesuatu.)
Edit: Satu-satunya cara yang saya temukan untuk memberitahu pylint untuk tidak memperingatkan tentang peringatan ini adalah dengan memblokir semua kesalahan jenis (E1101) yang bukan merupakan solusi yang dapat diterima, karena itu (menurut saya) merupakan kesalahan yang sangat berguna. Jika ada cara lain, tanpa menambah sumber pylint, harap tunjukkan saya secara spesifik :)
Lihat di sini untuk ringkasan masalah yang saya alami pychecker
dan pyflakes
- mereka terbukti jauh dari tidak stabil untuk penggunaan umum. (Dalam kasus pychecker, crash berasal dari kode pychecker - bukan sumber yang dimuat / dipanggil.)