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: ")

他のものよりも 1 つを選択する実用的な理由はありますか?

そうでない場合、最もPythonicと見なされるのはどれですか?

4

2 に答える 2

2
  • 可能であればinput()、クラス外の名前をパラメータとして渡します__init__()
  • これが選択肢でない場合は、2 番目の選択肢を選びます
  • またはget_name()のような名前に変更します。は、ユーザーからデータを取得するセッターやルーチンとは異なり、ゲッター (の値を取得する) のように聞こえます。query_name()input_name()get_name()name
于 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 に答える