问题标签 [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 投票
1 回答
212 浏览

python - 如何将参数传递给传递给 itertools.groupby 的 keyfunc?

所以!

这是一个使用的函数itertoos.groupby

现在,输出如下:

如您所见,连续的分隔符被连接成一个字符串。我希望这种行为是可选的(由sepcat我的函数的参数表示),但这是我遇到障碍的地方......如何将参数传递给separators.get

可以functools在这里帮助我吗?

0 投票
3 回答
139 浏览

python - 将 f(x) 转换为 f(*x) 的标准 Python 包装器?

我不断遇到以下包装器的用例:

标准 Python 2 库中是否有已经做到这一点的东西?我看了看functools,但找不到任何东西。

对于上下文,这是一个最近的用例:

0 投票
2 回答
3842 浏览

python - functools.wraps 不允许我用 Python 3 中的类包装函数

我想为一些将文件作为第一个参数的函数编写一个装饰器。装饰器必须实现上下文管理器协议(即将包装的函数变成上下文管理器),所以我想我需要用一个类来包装函数。

我对装饰器模式并没有真正的经验,并且以前从未实现过上下文管理器,但是我编写的内容适用于 Python 2.7,如果我注释掉该wraps行,它也适用于 Python 3.3。

取消注释该wraps行时出现的错误发生在内部update_wrapper

我知道文档并没有说我什至可以用functools.wraps这样的类来包装函数,但话又说回来,它只适用于 Python 2。有人可以解释一下这个回溯到底告诉我什么以及我应该做什么wraps在两个版本的Python上实现效果?


编辑:我错了。上面的代码没有做我想要的。我希望能够在没有 with的情况下使用该函数,例如内置函数open

上面的代码将修饰函数转换为上下文管理器。我希望能够做到:

所以我的代码版本应该大概如下所示:

随意评论我忽略的任何事情。

注意:JF Sebastian 的课程版本似乎可以工作:

我基本上wraps从课堂上删除了并改为return CManager

0 投票
3 回答
20502 浏览

python - itertools.accumulate() 与 functools.reduce()

在 Python 3.3 中itertools.accumulate(),通常重复地对提供的迭代应用加法运算,现在可以将函数参数作为参数;这意味着它现在与functools.reduce(). 粗略一看,现在两者之间的主要区别似乎是:

  1. accumulate()默认为求和,但不允许您显式提供额外的初始条件,reduce()而不默认为任何方法,但允许您提供用于 1/0 元素序列的初始条件,并且
  2. accumulate()先取可迭代,先reduce()取函数。

两者之间还有其他区别吗?或者这只是两个函数的行为问题,最初不同的用途开始随着时间的推移而收敛?

0 投票
2 回答
411 浏览

python - 使用 functools.partial 进行跟踪

我正在开发一个使用该trace模块来跟踪代码执行的项目。
当我调用trace.Trace(args).run(stuff)时,stuff必须是代码对象或字符串。

现在,我正在构建我将通过调用来调用的函数functools.partial。这部分完全按照我的需要工作。

但是,当我到达跟踪部分时,我无法使用functools.partial对象执行跟踪。我不能使用myFuncToolsPartialObject.func.func_name(args),因为我不能保证该函数将被导入本地范围。我可以通过调用 import 来解决这个问题,但目前我不想这样做(我们称之为个人偏好)。

有没有办法可以将functools.partial对象转换为代码对象以便正确调用跟踪?

我知道我可以要求myFuncToolsPartialObject.func.func_code,但我不知道如何在所需的参数上调用它

0 投票
7 回答
185828 浏览

python - functools partial 是如何做到的?

我无法理解部分函数在 functools 中的工作原理。我从这里得到以下代码:

现在排队

我知道我传递给incr它的任何参数都将传递ylambda哪个将返回sum(1, y)ie 1 + y

我明白那个。但我不明白这一点incr2(4)

get 如何像偏函数4一样传递?x对我来说,4应该替换sum2. x和之间有什么关系4

0 投票
2 回答
656 浏览

python - 在 python 中查找替换列表的 itertools 或 functools

我有一组有时无效的字符串,我想用更好的字符串替换它们。我一直在玩 functools 和 itertools 并想尝试将它们应用于问题,但我有点卡住了。这是我所拥有的:

我想要一个函数算法,对于 mylist 中的每个字符串,对于替换中的每个替换,string.replace(replacement[0],replacement[1])。

想到了什么,比如……

但是第一个需要额外的参数,第二个说列表对象没有属性替换。有没有一种巧妙的实用方法来解决这个问题?

0 投票
2 回答
841 浏览

python - Python + Kivy:时钟不适用于部分(关键字)

在上面的代码中,_procedural_reloading() 是一个类的方法,它获取一个包含一些图像的列表,并尝试一个一个地重新加载()它们。你猜怎么着,它不起作用,因为它说 _procedural_reloading 为关键字 gen 获得了多个值!

奇怪的是,如果我将 gen 作为参数(而不是关键字参数)传递,它就可以正常工作,在这里:

为什么 gen=gen 不起作用?

更详细地说,到目前为止,我什至一次都无法使用 Clock 传递任何关键字参数!我总是必须按顺序一个一个地排列参数并传递它们......这是一个已知问题吗?还是我在那里做错了什么?我觉得我好笨!

编辑:

没有默认值的 gen在我的情况下也不起作用:

0 投票
1 回答
1147 浏览

python - pyqt 计时器不返回值或错误

我正在尝试使用带有 pyqt 的计时器。代码如下,但它不打印任何东西,我也没有收到错误。有谁知道出了什么问题?
谢谢

编辑更新:

所以这是我使用的完整代码的一个片段,它有点复杂,可能是一个不同的问题,但结果是一样的。

结构是这样的:

我的目标是让一个按钮单击播放,并且在某个时间间隔在 qtgraphic 小部件中发生一些事情,然后停止按钮停止播放。我在这里的另一个问题中找到了 functools,但我不确定它是否正确。

0 投票
1 回答
5978 浏览

python - 如何将 memory_profiler(python 模块)与类方法一起使用?

我想分析类方法的时间和内存使用情况。我没有找到一个开箱即用的解决方案(有这样的模块吗?),我决定使用timeit时间分析和memory_usage模块memory_profiler

我遇到了使用memory_profiler. 我尝试了不同的变体,但都没有奏效。

当我尝试使用 partial from 时functools,我收到此错误:

顺便说一句,完全相同的方法适用于timeit函数。

当我尝试按原样使用lambda时,出现此错误:

如何使用 memory_profiler 处理类方法?

PS:我有内存分析器(0.26)(安装了pip)。

UPD:这实际上是错误。您可以在此处查看状态:https ://github.com/pythonprofilers/memory_profiler/issues/47