metaclasses são responsáveis por criar objetos de classe em python. Assim como as aulas criam instâncias, as metaclasses criam classes. Eles fornecem uma camada de controle sobre o processo de criação de classe, permitindo a personalização do comportamento e dos atributos da classe. Isso significa que as próprias classes são instâncias criadas a partir de uma 'descrição' da classe usando a palavra -chave da classe. Assim, a seguinte declaração cria um objeto de classe chamado ObjectCreator:
Criando classes dinamicamente
class ObjectCreator(object): pass
agora, chegamos a metaclasses. Eles são o 'material' que cria esses objetos de classe. Assim como as aulas criam instâncias, as metaclasses criam classes. Eles são efetivamente as classes nos bastidores que o Python usa automaticamente para criar classes definidas usando a palavra -chave da classe. No Python 3, isso foi substituído por um argumento de palavra -chave na lista de classes base.
Foo = type('Foo', (), {'bar': True}) print(Foo) #print(Foo.bar) # True
um metaclass pode modificar a classe que cria, permitindo o comportamento dinâmico da classe. Por exemplo, você pode definir uma metaclasse que converte automaticamente todos os atributos de classe em maiúsculas:
classe foo (object, metaclass = UpperattrMETACLASS): bar = 'bip' print (foo.bar) # 'bip'
# Python 2 class Foo(object, __metaclass__=MyMetaclass): ... # Python 3 class Foo(object, metaclass=MyMetaclass): ...
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