"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como evitar o compartilhamento de dados de classe entre instâncias em Python?

Como evitar o compartilhamento de dados de classe entre instâncias em Python?

Publicado em 2024-12-22
Navegar:349

How to Prevent Class Data Sharing Between Instances in Python?

Como isolar dados de classe para instâncias individuais

Para evitar que os dados de classe sejam compartilhados entre várias instâncias e garantir que cada instância mantenha seus próprios dados, siga estas etapas:

Declarar variáveis ​​​​dentro do construtor (método __init__)

Em vez de declarar variáveis ​​de nível de classe fora de qualquer método, defina-as dentro do método construtor init. Por exemplo:

class a:
    def __init__(self):
        self.list = []  # Declared within __init__ to create instance-specific lists

Ao inicializar a lista em __init__, uma nova instância da lista é criada junto com cada nova instância do objeto.

Código de amostra:

class a:
    def __init__(self):
        self.list = []

x = a()
y = a()

x.list.append(1)
y.list.append(2)
x.list.append(3)
y.list.append(4)

print(x.list)  # prints [1, 3]
print(y.list)  # prints [2, 4]

Neste exemplo, a lista não é mais compartilhada entre as duas instâncias (x e y), e cada instância mantém seus próprios dados separados, conforme desejado .

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3