问题标签 [functools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1743 浏览

python - str.startswith 的高阶函数使用

我有一个文件,我想从中清除注释行。我想以functools.partial类似于以下方式的方式用于操作:

这不起作用,显然是因为str.startswith是类方法。什么是正确的使用方法functools.partialstr.startswith所以它会起作用?

0 投票
1 回答
609 浏览

python - Memoize 类成员函数的包装器以返回部分值

我正在使用这里的 memoize 配方,并针对返回 2 个值的函数稍微修改了它。我使用这个包装器来创建两个单独的函数,它们分别返回第一个和第二个值,但是函数评估被缓存,因此当使用相同的参数调用任何一个返回的函数时没有开销。这是此包装器的代码。

现在,我正在尝试f在以这种方式在类中定义的函数上使用它:

我这样称呼它

如果成功f_v1(x)将返回2x并将f_v2(x)返回3x。但这失败并出现错误:

如果函数在类之外声明,我的代码可以正常工作。我错过了什么?我正在使用Python 2.7.

0 投票
0 回答
75 浏览

python - _functools.py 位于哪里?

我正在研究如何在 functools.py 中实现 wrap 装饰器并使用它partial(),然后我想看看它是如何实现的。它是从 _functools 导入的,所以我寻找 _functools.py 但找不到它。我 grepped 了整个 python 目录,然后是我的整个 C: 驱动器,但什么也没出现。这个文件在哪里?(Win7 x64)

0 投票
1 回答
1454 浏览

python - Python functools.lru_cache 驱逐回调或等效

functools.lru_cache是否可以为项目被驱逐时定义回调?在回调中,缓存的值也应该存在。

如果没有,也许有人知道支持驱逐和回调的轻量级 dict-like 缓存?

0 投票
1 回答
338 浏览

python - 如何部分应用函数的任意参数?

我想使用 functools 中的 partial 来部分应用函数的第二个参数,我知道使用 lambda 而不是 partial 很容易,如下所示

但我严格想在这里使用部分(为了学习)所以我想出了这个。

是否可以将此策略扩展到可以在任何地方部分应用任何参数的级别,例如以下伪代码

在我们的例子中,我可以使用这个函数如下

是否有可能像我想要的那样有一个索引部分?有什么类似的东西我不知道吗?更重要的是,索引部分的想法通常是一个好主意还是坏主意,为什么?

此问题已被标记为可能重复Can one partial apply the second argument of a function that takes no keyword arguments? 在那个问题中,OP询问是否可以部分应用第二个参数,但在这里我要问的是如何烹饪一个可以部分应用任何任意参数的函数

0 投票
1 回答
1436 浏览

python - 如何处理 TypeError: 'functools.partial' object has no attribute '__getitem__'

我有一个名为“generate_wind_cap_new_data”的函数,它返回一个熊猫数据框。

我想把这个剪掉一个特定的时间范围。我的代码是:

但我得到错误:TypeError:'functools.partial'对象没有属性' getitem '

我该如何处理错误?或者还有其他可能的方法吗?

谢谢!!

0 投票
2 回答
774 浏览

python - 使用 functools.wraps 修饰的函数会引发带有包装器名称的 TypeError。为什么?如何避免?

functools.wraps保留以下名称的工作g

但是如果我将一个参数传递给g,我会得到一个TypeError包含包装器名称的:

这个名字从何而来?它保存在哪里?有没有办法让异常看起来像g() takes no arguments

0 投票
2 回答
217 浏览

python - 部分应用字符串相等函数

据我了解,我可以将字符串与isand进行比较==。有没有办法可以部分应用这些功能?

例如:

给我:

0 投票
2 回答
2337 浏览

python - Python - 计算函数通过装饰器的次数

我有一个装饰器,我想在函数通过装饰器路由时增加一个计数器。到目前为止,这是我的代码

它工作正常,直到另一个函数通过装饰器并将该函数的计数重置为 0。如何汇总总次数?

0 投票
2 回答
9831 浏览

python - 使@lru_cache 忽略一些函数参数

如何让@functools.lru_cache装饰器忽略一些关于缓存键的函数参数?

例如,我有一个如下所示的函数:

如果我lru_cache像这样应用装饰器,db_handle将包含在缓存键中。结果,如果我尝试使用相同query但不同的函数调用该函数db_handle,它将再次执行,我想避免这种情况。我只想lru_cache考虑query论点。