0

我正在考虑以下类初始化方法:

class Foo():
    def __init__(self):
        self.name = self.get_name()
    def get_name(self):
        return raw_input("Name: ")

class Foo():
    def __init__(self):
        self.name = ""
        self.get_name()
    def get_name(self):
        self.name = raw_input("Name: ")

class Foo():
    def __init__(self):
        self.name = raw_input("Name: ")

是否有任何实际理由选择其中一个而不是其他?

如果不是,那可能被认为是最 Pythonic 的?

4

2 回答 2

2
  • 如果可能,input()将名称放在类之外并将其作为参数传递给它的__init__().
  • 如果这不是一个选项,我会选择第二种选择
  • 我会重命名get_name()query_name()or input_name()get_name()听起来像是一个 getter(获取的值),而不是一个从 user获取数据name的 setter 或例程。
于 2013-04-24T12:42:36.853 回答
0

我不喜欢在构造函数中进行原始输入的想法,但毕竟,为什么不......我更喜欢:

class Foo():
    def __init__(self):
        self.name = ""

    def prompt_name(self):
        self.name = raw_input("Name: ")

if __name__ == "__main__":
    aFoo = Foo()
    aFoo.prompt_name()
于 2013-04-24T12:40:44.433 回答