长类名的最佳命名约定是什么?

时间:2017-11-03 01:42:53

标签: python model-view-controller flask conventions pep8

现在,我正在为MVC Pattern编写Python-flask代码。 但是,我认为自己,我认为控制器类的声明者太长了

例如,我有

class GoogleQuestionController:
    def __init__(self):

        (.....)

class YahooQuestionController:
    def __init__(self):

        (.....)

两个非常相似的类名,所以我不能像

那样定义声明符
question_controller = GoogleQuestionController()

的上方。

定义类声明符的最佳建议是什么?

google_question_controller = GoogleQuestionController()
yahoo_question_controller = YahooQuestionController()

这段代码太长了,

所以,我现在正在这样使用。

yq_con = YahooQuestionController()
gq_con = GoogleQuestionController()

gqc = GoogleQuestionController()
yqc = YahooQuestionController()

2 个答案:

答案 0 :(得分:1)

上下文非常重要:

SUB Y, D3

可能没问题,但是如果我们能够重构以使名词不含糊,即如果只有一个谷歌对象我可能会使用:

google_question_controller = GoogleQuestionController()
yahoo_question_controller = YahooQuestionController()

同样,如果动词不明确,例如如果我在Google对象/模块中,我会使用google = GoogleQuestionController() yahoo = YahooQuestionController() (或者question):

controller

通过这种方式,您可以通过某种方式重写代码以提高可读性。

通常情况下,在这种情况下,将相似的行为组合在一起可以带来更好的抽象,例如我们可以定义一个mixin / base类,它使用class GoogleSomething(object): def __init__(self): self.question = GoogleQuestionController() # or perhaps `controller` class YahooSomething(object): def __init__(self): self.question = YahooQuestionController() 之间使用共享API {{1} }和self.controller等。

答案 1 :(得分:0)

也许这不是您正在寻找的答案,但我强烈建议您实际选择:

google_question_controller = GoogleQuestionController()
yahoo_question_controller = YahooQuestionController()

我不认为这太长了,实际上它是可读的和整洁的。

现在,意见旁白,请记住PEP 8对长度没有限制,但对变量具有很高的可读性:

  

使用函数命名规则:小写,单词分隔   必要时强调提高可读性。