Instance attribute attribute_name defined outside __init__
: my tercüman mutlu benim kod çalışır iken, PyLint şikayeti vardır
class Wizard:
def __init__(self, argv):
self.parse_arguments(argv)
self.wave_wand() # declaration omitted
def parse_arguments(self, argv):
if self.has_correct_argument_count(argv):
self.name = argv[0]
self.magic_ability = argv[1]
else:
raise InvalidArgumentsException() # declaration omitted
# ... irrelevant functions omitted
üstünkörü Google arama
şu anda sonuçsuz olduğunu. Tüm kurucu mantığını__init__
içinde tutmak, düzensiz görünüyor ve Pylint uyarısını kapatmak da hack-ish gibi görünüyor.
Bu sorunu gidermek için Pythonic yolu nedir?
Uyarı sadece ne yazdığını söylüyor. Örnek değişkenleri kurucunun dışında fiili olarak başlatırsanız, bunun [POLS] (http://en.wikipedia.org/wiki/Principle_of_least_astonishment) ihlal ettiğini düşünürüm. 'Parse_arguments' satırını satır içi veya değişkenleri başlatmak için __init__' işlevinin dönüş değerlerini kullanın ve pylint mutlu olacak sanırım. – miku