tl;dr: dla nazw globalnych / publicznych użyj AllCaps jak powiedział XORcist:

class Logger: passAliasLogger = Logger

Dla parametrów funkcji i locals funkcji, wyjaśnij, że masz do czynienia z obiektem klasy z opisową nazwą, taką jak ta:

def some_func(logger_class): pass

lub coś wzdłuż linii

def some_func(my_class_classobj): pass

gdy słowo "class" jest rzeczywiście w twojej nazwie klasy. Dla classobj, zobacz także class_ i klass.

Analiza/Motywacja (długa wersja)

Nie czytałem dokładnie, ale na pierwszy rzut oka PEP 8 nie wydaje się być jednoznaczny w tej kwestii (ani google’s python style guide dla tej sprawy).

Ponieważ nazwa zmiennej jest prawdopodobnie tylko kolejnym wiązaniem nazw w pythonie, moim zdaniem nie ma znaczenia, czy wiążesz tę nazwę z blokiem definicji, czy później ze znakiem równości = do jakiegoś obiektu.

Z tego powodu zgadzam się z XORcistem w tym, że odniesienia „alias” na poziomie modułu powinny stosować się do twojego standardu nazewnictwa klas, prawdopodobnie AllCaps:

class MyClass(object): pass# goodReferenceToClass = MyClass

Jednakże jeśli chodzi o nazwy parametrów i zmiennych, podobno lowercase_underscores powinno mieć zastosowanie, prawda? Jestem niezadowolony tylko z tego, ponieważ popchnie cię to do niejednoznaczności odniesienia instancji vs klasy. Istnieje potencjał, że nazwa z małymi literami może być próbą podpowiedzi, że obiekt jest instancją. Z tego powodu zalecam postfiksowanie wszystkich małych liter w nazwach zmiennych odwołujących się do klas za pomocą przyrostka „class”, jak poniżej:

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

Zmieniłem nazwę twojej przykładowej klasy MyClass na Logger, ponieważ w prawdziwych scenariuszach tylko kilka nazw klas zawiera ciąg "class". Jednak w tym drugim przypadku proponuję jeszcze raz uniknąć niejednoznaczności za pomocą opisowego nazewnictwa. Na przykład, możesz użyć przyrostka classobj:

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.