Dlaczego funkcje powinny być zadeklarowane poza klasą, z której korzystają w Pythonie?Co jest zaletą zdefiniowania jakiejś funkcji poza klasą w pythonowym programie?
Na przykład following project on Github wykonuje to za pomocą funkcji _hash
, _task_from_taskline
i . Format jest taki sam, jak poniżej:
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
Ale myślę, że funkcje te mają związek z klasy TaskDict
.
Po co je wyrzucać z klasy? Jaka jest przewaga posiadania ich zadeklarowanych poza klasą?
obróć ją: Co zaletą byłoby umieścić je w klasie zamiast? –
@MartijnPieters Encapsulation. –
@GeorgeStocker: co jeśli funkcje nie mają wpływu na stan instancji? –