Dies ist von the Python docs. Ich verstehe das nicht, kann jemand ein paar Beispiele geben?So verstehen Sie dieses Dokument
Wenn eine Klasse auch in einer Basisklasse definiert einen Schlitz definiert, die Instanz-Variable durch die Basisklasse Schlitz definiert ist, unzugänglich (außer durch seinen Descriptor Abrufen direkt von der Basisklasse). Dies macht die Bedeutung des Programms undefiniert. In der Zukunft kann eine Überprüfung hinzugefügt werden, um dies zu verhindern.
Ich habe versucht, ein Beispiel dafür zu machen, aber gescheitert. Wenn ich das Programm unten ausführe, druckt es 1
, so dass die Variable nicht zugänglich ist. Wann wäre es?
class Base(object):
__slots__ = 'a'
def __init__(self):
self.a = 1
class Subclass(Base):
__slots__ = 'a'
def __init__(self):
super(Subclass, self).__init__()
print self.a
Subclass()
Auszug ist ziemlich geradlinig. Welchen Teil davon verstehst du nicht? –
Ich habe versucht, ein Beispiel zu erstellen, um deine Frage zu beantworten, und habe das Gegenteil von dem gefunden, was die Doktoren gesagt haben, also habe ich es in deine Frage bearbeitet und bin jetzt auch interessiert, welche Antworten die Leute haben. –
die durch den Basisklassen-Slot definierte Instanzvariable ist nicht zugänglich, b = Base() print b.a Ich dachte, die b.a ist nicht zugänglich, was ist der unzugängliche? – user2352151