tl;dr: para nomes globais/públicos use AllCaps como XORcist disse:

class Logger: passAliasLogger = Logger

Para parâmetros de funções e locais de funções, deixe claro que você está lidando com o objeto classe com um nome descritivo como este:

def some_func(logger_class): pass

ou algo ao longo das linhas

def some_func(my_class_classobj): pass

quando a palavra "class" está realmente no seu nome de classe. Para classobj, veja também class_ e klass.

Análise/Motivação (versão longa)

Nenhuma leitura completa, mas num relance PEP 8 não parece estar explícita nisto (nem o guia de estilo python do google para esse assunto).

Desde que o nome de uma variável é provavelmente ainda – outro nome vinculativo em python, na minha opinião não importa realmente se você vincula esse nome com o bloco de definição ou mais tarde com o sinal = igual a algum objeto.

Para isso eu concordo com o XORcist, nesse nível de módulo as referências “alias” devem aderir ao seu padrão de nomenclatura de classes, provavelmente AllCaps:

class MyClass(object): pass# goodReferenceToClass = MyClass

No entanto, quando se trata de nomes de parâmetros e variáveis, supostamente lowercase_underscores deve se aplicar, certo? Eu estou descontente apenas com isso, já que isso vai empurrá-lo para a ambiguidade de referência da instância versus classe. Há o potencial de que um nome em minúsculas possa ser uma tentativa de insinuar que o objeto é uma instância. Por essa razão, eu recomendo que você poste o nome da sua variável com letras minúsculas, referenciando nomes de variáveis com o sufixo “class”, assim:

class Logger(object): passdef function_expecting_class_reference(logger_class): pass

Eu renomeei a sua classe de exemplo MyClass para Logger porque em cenários reais apenas alguns nomes de classes contêm a string "class". No entanto, neste último caso proponho evitar mais uma vez a ambiguidade com o nome descritivo. Por exemplo, você pode usar um sufixo classobj:

.

Deixe uma resposta

O seu endereço de email não será publicado.