这不是我的问题
我只想说明为什么我需要懒惰的评估function.func_name
我在代码中使用curry
修饰符
我通过修改func_name
所以当我需要一些调试时,我可以很容易地找出哪些参数已经存在
>> My modified version <<
>> The original version <<
我的curry
示例:
@curry
def f(a, b, c, flag_foo=True, flag_bar=False):
pass
>>> f
<function f at 0x100545398>
>>> f(1, flag_bar=True)
<function f(1, flag_bar=True) at 0x1005451b8>
>>> f(1, flag_bar=True)(3, flag_foo=False)
<function f(1, 3, flag_foo=False, flag_bar=True) at 0x1004aee60>
由于func_name
在没有调试的情况下将永远无法访问,
我想避免函数名求值的开销
但是,function
是一个不能子类化的final类
有什么方法可以对function.func_name
执行延迟求值吗?在
欢迎提出任何建议
代码:
测试:
^{pr2}$结果是:
这里不是“纯”函数,而是一个充当函数的可调用类。你只评估一次名字。当然,如果您想要} ,并返回一次求值的
func_name
,您可以添加这样的变量^{str(self)
相关问题 更多 >
编程相关推荐