python __get__ 方法的用途是什么?

4 投票
2 回答
1036 浏览
提问于 2025-04-16 12:00

什么是__get__,它能做到哪些用拥有对象的getter方法做不到的事情呢?

我能想到的是,它可以更好地分离不同的功能,但我觉得还有更多的好处。

2 个回答

1

获取器方法看起来不太好。直接这样做会更清楚:

obj.foobar

而不是这样:

obj.get_foobar()

其次,它用于实现静态方法、类方法和普通方法。这些方法的行为稍有不同,而 __get__ 方法就是用来实现它们的。

5

这个东西是用来处理描述符的。描述符有点像Python中的获取器(getters)和设置器(setters),还有属性,但更强大。它是Python实现统一访问原则的一种方式。

撰写回答