2017-11-27 8 views
0

私はfile_parsers.pyと呼ばれるファイルを持っており、それには、以下のクラスが含まれます。Pythonで関数のレベルをどのように決めるべきですか?

class FileParser(): 

    def __init__(self, file_text): 
     self.file_text = file_text 

    def do_something(self): 
     my_value = func_with_no_state() 

私はfunc_with_no_state()は、クラス内やクラスなどの外にあるべきかを決定する際に聞いてどのような質問はよく分からないがファイルレベルの関数ですか?

また、ファイルレベルまたはクラス内でこの関数をスタブする方が簡単ですか?

+0

'func_with_no_state'とはどういう意味ですか?それは何ですか?あなたは何を達成しようとしていますか? – user1767754

+0

do_something()とfunc_with_no_state()は非常に一般的な名前です。彼らは何をしますか? –

+2

これはOOPや設計上の質問のほうが多いです。特にPythonには関係しません。非常におおまかな答えは、関数がクラスに関連しているか、クラスメソッド間で共有されている変数を使用している場合にクラスを使用する場合です。関数が独立して動作し、クラス変数を使用しない場合は、外部に保持してください。 –

答えて

1

他のクラスではfunc_with_no_stateを使用していますか?そうでない場合は、FileParserの中に隠す必要があります。他の何かがそれを使用している場合、あなたはより大きな質問をしています。 OtherClassがを頻繁に使用する場合(FileParser)、func_with_no_stateを両方のクラスで使用できるようにすることをお勧めします。しかし、FileParserがはるかに主なユーザーであれば、OtherClassFileParserの定義から機能を引き出すことができます。

関連する問題