![]() |
1
135
我通常使用函数属性作为注释的存储。假设我想用C#的风格编写(表示某个方法应该是web服务接口的一部分)
然后我可以定义
然后,当web服务调用到达时,我会查找该方法,检查底层函数是否具有is_webmethod属性(实际值无关紧要),如果该方法不存在或不打算通过web调用,则拒绝该服务。 |
![]() |
2
112
我将它们用作函数的静态变量。例如,给定以下C代码:
我可以在Python中类似地实现该函数:
这肯定属于“滥用”的范畴。 |
![]() |
3
45
你可以用JavaScript的方式处理对象。..这没有意义,但它有效;)
|
![]() |
4
14
我很少使用它们,但它们可能非常方便:
现在我可以使用
|
![]() |
5
10
函数属性可用于编写将代码和相关数据包装在一起的轻量级闭包:
1.00934004784 2.00644397736 3.01593494415 |
|
6
3
我创建了这个辅助装饰器来轻松设置函数属性:
一个用例是创建一组工厂,并在函数元级别查询它们可以创建的数据类型。
|
![]() |
7
2
有时我会使用函数的属性来缓存已经计算的值。你也可以有一个通用的装饰器来推广这种方法。请注意这些函数的并发问题和副作用! |
![]() |
8
1
我一直认为,这是可能的唯一原因,因为有一个合乎逻辑的地方可以放置文档字符串或其他类似的东西。我知道如果我把它用于任何生产代码,它会让大多数阅读它的人感到困惑。 |