Perché le funzioni dovrebbero essere dichiarate al di fuori della classe in cui sono utilizzate in Python?Qual è il vantaggio di definire alcune funzioni fuori classe nel programma python
Ad esempio, lo following project on Github esegue questa operazione con le sue funzioni , _task_from_taskline
e _tasklines_from_tasks
. Il formato è lo stesso come il seguente:
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
Ma credo che queste funzioni hanno un rapporto con la classe TaskDict
.
Perché metterli fuori dalla classe? Qual è il vantaggio di averli dichiarati al di fuori della classe?
girare intorno: Quale sarebbe il vantaggio è quello di metterli nella classe, invece? –
@MartijnPieters Incapsulamento. –
@GeorgeStocker: cosa succede se le funzioni non hanno alcun rapporto con lo stato dell'istanza? –