![]() |
1
2
定义自己的描述符
现在,确定每种坐标形状的逻辑嵌入到描述符本身中,而不是您的类中。 一些例子:
|
![]() |
2
2
可以将属性名及其各自的常量值传递给
|
![]() |
3
2
通过调用
|
![]() |
4
2
你不能将值传递给属性获取器,而装饰器会很快变得笨重。如果至少使用3.4,那么可以使用functools.partialMethod减少行数。 但是,最好保持代码的原样,因为“显式优于隐式”。
|
![]() |
5
2
通过这样做,您可以去掉很多样板代码:
|
![]() |
6
0
就个人而言,我认为代码已经相当优雅了。
你不应该/不能
如果您真的只是想减少代码的大小,那么您可以尝试其他答案中的一种方法,尽管我认为这不是真正必要的。
旁白:正如我从您的用例中了解到的,您希望允许用户能够调用
|
![]() |
sokeefe · 初始化类中的Decorator变量 7 年前 |
![]() |
oulenz · 如何使新的装饰器在类中可用,而不显式导入它们? 7 年前 |
![]() |
spencer · 为什么有必要将self作为方法装饰器的参数? 8 年前 |
![]() |
Jorge Arévalo · 如何检查函数是否用特定的装饰器装饰? 8 年前 |
![]() |
jrk0414 · 在python中使用修饰符设置全局变量 8 年前 |
![]() |
Brendan Abel · 在函数属性中访问self 8 年前 |