Wenn ein Attribut nicht in den Slots zuweisen Pylint den Fehler E0237 wirft ‚: Zuordnung in Klasse Slots definiert Attribut nicht‘Warum prüft pylint nach Mitgliedern, die sich beim Zuweisen nicht in __slots__ befinden, aber nicht beim Zugriff?
aber es nicht beim Zugriff auf ein Attribut nicht in Slots
See Beispiel unten.
Ist es ein "fehlendes Feature" oder gibt es einen Grund, es nicht zu überprüfen?
class Dummyclass(object):
__slots__ = ['myvariable']
def __init__(self):
self.myvariable = 1
def main():
dummy = Dummyclass()
dummy.doesnotexist = 4 #This raises an error
temp = dummy.doesnotexist #This does not
Ich bekomme 'AttributeError' für beide 'dummy.doesnotexist = 4' und' temp = dummy.doesnotexist' – jDo
@jDo: Ich bekomme den Fehler zur Laufzeit, aber nicht bei der Bearbeitung mit pydev + pylint und pycharm. Ich muss das für Tests verwenden, die ein paar Stunden dauern. Ich muss sie vor der Laufzeit erkennen. – Cedric
Ok, ich habe es nicht mit pylint versucht, sondern nur verschiedene Varianten des Codes ausgeführt und in beiden Fällen Fehler bekommen. Ich bin mir nicht sicher, was pylint anders macht – jDo