2
已经有一个类似的问题"When and how to use the builtin function property() in python",但我这一个是不同的。Getter方法vs只读属性
我有一个需要一个方法来获得的一些工作进展计数器类:
class Downloader():
def __init__(self, max_workers):
self.executor = ThreadPoolExecutor(max_workers)
@property
def unfinished_tasks_count(self):
return self.executor._work_queue.unfinished_tasks
我认为这是更好地做到:
class Downloader():
...
def get_unfinished_tasks_count(self):
return self.executor._work_queue.unfinished_tasks
,因为当它的属性看界面(无需查看文档和/或源代码),它并不是显式的,它是只读的计算属性。当它是一种方法时,显然它只是一个计算值的获取者,并不是一个可由API客户端设置的简单属性。
所以我的问题是:何时使用getter方法vs只读属性?
我想如果你想要它_read-only_,一个getter函数会更好。 – aIKid