Каково будет правильное соглашение об именах для модуля Python, класса и переменной экземпляра, имеющих одинаковое базовое имя? - PullRequest
2 голосов
/ 27 октября 2011

Во-первых, я полностью осведомлен о PEP8 , но иногда не совсем понятно, как следует называть вещи.

Давайте предположим, что у нас есть ABC как сокращение.

  • Модуль должен называться: abc
  • Класс внутри модуля должен иметь имя: Abc или ABC? (не уверен)
  • Экземпляр переменная должна иметь имя abc
# abc.py
CONSTANT = "foo"
class Abc(object):
    pass

# test.py
import abc

print abc.CONSTANT
abc_ = abc.Abc() # oops, if I use `abc` will lose ability to access abc.FOO ?

Если у вас есть постоянная внутри модуля abc, вы можете получить к ней доступ, используя abc.CONSTANT извне, но если у вас также есть экземпляр с тем же именем, это не будет понятно?

Если есть чистый способ решить эту проблему? Отличается ли решение, если вместо аббревиатуры у вас просто простое слово?

Примечание: Abc() класс действует большую часть времени как Singleton, поэтому по этой причине я не смог найти другое имя для экземпляра.

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Модуль: abc Класс: Abc

Экземпляр: экземпляр может быть назван как класс, но он определенно не требуется.В вашем случае я бы дал переменной имя, описывающее экземпляр, чтобы избежать конфликта имен!

Пример:

class Car:
    pass
audi = Car()
myCar = Car()
myBrothersCar = Car()
0 голосов
/ 27 октября 2011

Имя класса может быть Abc или ABC, в зависимости от того, является ли оно сокращением или простым именем.

Пример с сокращением: CRCCheckerTool.

...