classe @ Python aninhada precisa acessar a variável na classe delimitadora
Eu já vi algumas "soluções" para isso, mas a solução sempre parece ser "Não use classes aninhadas, defina as classes fora e use-as normalmente". Não gosto dessa resposta, porque ignora a principal razão pela qual escolhi as classes aninhadas, ou seja, para ter um conjunto de constantes (associadas à classe base) acessível a todas as instâncias de subclasses criada
Aqui está o código de exemplo:
class ParentClass:
constant_pool = []
children = []
def __init__(self, stream):
self.constant_pool = ConstantPool(stream)
child_count = stream.read_ui16()
for i in range(0, child_count):
children.append(ChildClass(stream))
class ChildClass:
name = None
def __init__(self, stream):
idx = stream.read_ui16()
self.name = constant_pool[idx]
s classes @All recebem um único parâmetro, que é uma classe de fluxo de bits personalizada. Minha intenção é ter uma solução que não exija que eu leia o valor idx para ChildClass enquanto ainda estiver na ParentClass. Toda a leitura do fluxo da classe filho deve ser feita na classe filh
Este exemplo é simplificado demais. O pool constante não é a única variável necessária para todas as subclasses. A variável idx não é a única coisa lida no leitor de fluxo.
Isso é possível em python? Não há como acessar as informações dos pais?