【发布时间】:2012-01-28 20:22:49
【问题描述】:
几个月前我刚开始学习 Python,我正在尝试了解不同 __get*__ 方法之间的区别:
__get__
__getattr__
__getattribute__
__getitem___
还有他们的__del*__ 等价物:
__del__
__delattr__
__delete__
__delitem__
它们之间有什么区别?我什么时候应该使用其中一种?大多数__get*__ 方法都有__set*__ 等价物,但没有__setattribute__,是否有特定原因?
【问题讨论】:
-
文档没有像“水平”那样“并排”列出它们,但它确实将它们全部放在一个页面上,除了
{get,set}item之外的所有内容(其中脱颖而出以item为特色)在两个小部分中垂直相邻。其中一些名称太太简洁/相似,但并不像你说的那么糟糕。 -
是的,大约 20 分钟前我意识到它们实际上都在一页上。对不起——我的错。 但是:我仍然很困惑。我以为我已经阅读了文档,但我仍然无法在特殊方法名称之间做出清晰的定义。
标签: python getter-setter standard-library accessor