なぜPythonで使用されているクラス外で関数を宣言する必要がありますか?Pythonプログラムでクラス外の関数を定義するとどんな利点がありますか
たとえば、following project on Githubは、_hash
,_task_from_taskline
、および_tasklines_from_tasks
の機能でこれを行います。
class UnknownPrefix(Exception):
"""Raised when trying to use a prefix that does not match any tasks."""
def __init__(self, prefix):
super(UnknownPrefix, self).__init__()
self.prefix = prefix
def _hash(text):
return hashlib.sha1(text).hexdigest()
def _task_from_taskline(taskline):
"""
snipped out actual code
"""
return task
def _tasklines_from_tasks(tasks):
"""Parse a list of tasks into tasklines suitable for writing."""
return tasklines
しかし、私は、これらの機能は、クラスTaskDict
との関係を持っていると思う:フォーマットは、次のと同じです。
なぜそれらをクラスから外しましたか?クラス外で宣言することの利点は何ですか?
電源を入れ、それを持っている:どのような利点が代わりにクラスでそれらを置くことだろうか? –
@MartijnPietersカプセル化。 –
@ GeorgeStocker:関数がインスタンス状態に影響しない場合はどうなりますか? –