【发布时间】:2015-07-25 12:53:54
【问题描述】:
我经常看到这种情况:
def __get__(self, instance, owner=None):
为什么有些人对owner参数使用默认值None?
这甚至在Python docs中完成:
descr.__get__(self, obj, type=None) --> value
【问题讨论】:
-
有点相关的问题:stackoverflow.com/q/8719585
-
@BasSwinckels 确实,但不幸的是,这没有提供关于我的问题的信息。
-
不相关,但第三个参数不是“所有者”。这意味着所有者是描述符所在的对象。相反,它是调用描述符的类型。也就是说,如果描述符是通过子类访问的,那么第三个参数将是子类而不是父类(它“拥有”描述符)。
-
@Dunes 我猜人们只是不喜欢使用
type作为参数名称。我一直认为它是“拥有”实例(而不是描述符)的类,因此是所有者。 -
啊,这个推理更有意义。不过,想想拥有一个实例的类仍然觉得有点奇怪。就个人而言,我使用
objtype。没有歧义,也没有隐藏名称。
标签: python python-3.x descriptor python-descriptors