在Python中,使用def并lambda具有__dict__属性创建的函数,以便您可以动态地向它们添加属性.拥有__dict__每个功能都有内存成本.空dict在CPython 2.6中使用140个字节.
向函数添加属性并不是特别常见的事情,并且您可以将自定义对象与__call__方法一起用于需要具有非标准属性的函数的情况.
因为向函数添加自定义属性不是常见的用例并且具有__dict__内存成本,为什么Python函数具有__dict__?
在Python中,使用def和lambda创建的函数具有一个
__dict__属性,因此您可以动态地向它们添加属性.
嗯,是; 毕竟,它们是对象.
拥有
__dict__每个功能都有内存成本.空dict在CPython 2.6中使用140个字节.
这对我来说是124字节.并不是说为了讨论真的很重要.
如果你真的需要保存每个字节,你就不会使用Python.在使用大量内存的程序中,函数通常只占对象数量的一小部分,因此开销并不重要.IMO你应该更担心的是,每个浮点值花费你16个字节,而你无法切换double到float.当然,担心这个的方法是使用Numpy.:)
向函数添加属性并不是特别常见的事情,
如果你来自Java/C++/C#世界,那么我想它对你来说似乎非常麻烦.但是对于那些来自Perl/Javascript世界的人(甚至,在一个相当不同的方向,可能是像Scheme或Haskell这样的东西),它非常优雅.
所以基本上,我会说答案是"为什么不呢?" :)
| 归档时间: |
|
| 查看次数: |
3764 次 |
| 最近记录: |