Это от the Python docs. Я не понимаю этого, может ли кто-нибудь привести примеры?Как понять этот документ
Если класс определяет слот, также определенный в базовом классе, экземпляр переменной определяется слот базового класса недоступен (за исключением извлечения его дескриптор непосредственно из базового класса). Это отображает значение программы undefined. В будущем для предотвращения этого может быть установлен код .
Я попытался сделать пример этого, но не смог. Когда я запускаю программу ниже, она печатает 1
, поэтому переменная недоступна. Когда это будет?
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()
Выдержка довольно прямолинейна. Точно, какую часть этого вы не понимаете? –
Я попытался привести пример, чтобы ответить на ваш вопрос, и обнаружил противоположное тому, что говорили документы, поэтому я отредактировал его на ваш вопрос, и теперь мне также интересно узнать, какие ответы у людей есть. –
переменная экземпляра, определенная слотом базового класса, недоступна, b = Base() print b.a Я думал, что b.a недоступен, что недоступно? – user2352151