2

昨天我看到了 Raymond Hettinger 的一条推文。他用__set_name__.

当我__set_name__为我的类声明时,该名称将成为实例的名称。所有者成为Foo,这是意料之中的,但我无法弄清楚这何时以及如何有用。

class Bar:
    def __set_name__(self, owner, name):
        print(f'{self} was named {name} by {owner}')

class Foo:
    x = Bar()
    y = Bar()

那打印

<__main__.Bar object at 0x7f48f2968820> was named x by <class '__main__.Foo'>
<__main__.Bar object at 0x7f48f2968c70> was named y by <class '__main__.Foo'>
4

0 回答 0