0

所以我想在我的python类中添加类属性(在定义时可能取决于其他类属性,例如cls.__name__等)。我知道这样做的两种方法:

  1. 编写一个元类。我不喜欢这样,因为(1)为什么我每次写一个类时都必须写 2 个类(2)它还有其他缺点,比如元类中的属性,查询时也不显示dir(MyClass)

  2. 使用@classmethod+@property从 python 3.9 开始就可以使用。这就是我正在使用的自动取款机,但公平地说,到目前为止,这种体验非常糟糕。存在一些疯狂的错误,并且使用这种装饰器组合目前与重要的开发工具不兼容,例如mypy.

一定会有更好的办法!

自定义@classattribute描述符可能是解决方案吗?

4

0 回答 0