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

python - 简单的生成器函数和 numpy 玩不好?

假设我有一个像这样的简单生成器函数(我有充分的理由使用 numpy 数组,因为实际情况会涉及一些向量操作):

取 10 个第一要素:

现在使用 .next() 给出从 1 到 10 的预期值。但尝试将其转换为列表,会发生这种情况:

WTF?!?!

如果我修改代码的最后一行以产生 np.array(x),那么列表转换就可以了!有谁知道发生了什么?

0 投票
1 回答
291 浏览

python - 等效于 functools.singledispatch 的 super()

functools.singledispatch有助于定义单调度泛型方法。同时,还有super()调用方法或访问超类的属性。

有没有类似的东西super()可以用singledispatch?我尝试了以下方法,但结果super(Derived, value)只是不是实例Base,所以它没有按我预期的那样工作:

0 投票
1 回答
2828 浏览

python - Functools.update_wrapper() 无法正常工作

Functools.update_wrapper()在我的装饰器中使用,但似乎update_wrapper只重写了函数属性(例如__doc__, __name__),但不影响help()函数。

我知道这些答案,但它们不适用于装饰类。

这是我的功能。

这是输出

它看起来像一个错误,但我该如何修复它?

0 投票
1 回答
122 浏览

python - 编写高阶函数的最pythonic方式

这应该是一个非常基本的问题,但我想知道处理高阶函数的最 Pythonic 方式是什么。我已经f并且g已经定义了:

或者:

可能有一点我可能会错过这两种写作不同的地方?

0 投票
0 回答
1718 浏览

python - functools部分错误:AttributeError:'functools.partial'对象没有属性'__module__'

我注意到有时会发生这种情况,通常我会切换到 lambda,但想知道我在做什么导致它:

出现:

调用使用:functools.partial(f,room)

我将非常感谢任何帮助!

0 投票
1 回答
753 浏览

python - Python 中的函子与函数闭包

我们应该在我们的实验室中使用函子,然后改用函数闭包。对于我们从 functools 导入 partial 作为命令的仿函数,设置最终看起来像:

然后我们将在其中将后来开发的方法绑定到标签...我将如何使用函数闭包而不是仿函数来做这样的事情?

0 投票
1 回答
539 浏览

python - Timeit 和部分

检查这个python代码:

但是,当我通过部分时间 timeit 时:

似乎用 x=1 和 y=2 来评估夏天。

我明白发生了什么吗?我使用 timeit 对吗?当我为每个参数传递值时,如何部分评估夏天?

编辑:为了清楚起见,我添加了以下评论作为这个问题的一部分。

我的问题是 partial(summer, 1, 2) 不评估夏天。那么为什么在 timeit.repeat 中调用它来评估夏天呢?

0 投票
3 回答
1734 浏览

python - 带有实例方法的 Monkeypatch

我正在尝试修补pandasPanel 的切片 ( __getitem__) 方式。这对于一个基本函数 foo 来说很简单。

ORIGINAL_getitem原始 Panel 方法存储在哪里。我试图扩展到foo()不是函数,而是对象的实例方法的情况,Foo. 例如:

Foo.foo()必须访问属性self.name。因此,除了 Panel 之外,monkeypatched 函数还需要以某种方式引用 Foo 实例。我怎样才能使用monkeypatch面板Foo.foo()并使self.name可以访问?

猴子补丁功能之间的切换发生在另一种方法中,Foo.set_backend()

我真正需要的是newgetitem保持对self.

解决方案尝试

到目前为止,我已经尝试过创建newgetitem()一个纯函数,并使用部分函数来传递对 self 的引用。这不起作用。就像是:

但这不起作用。传递了对 self 的引用,但无法从调用 Panel 访问。那是:

传递对 的引用Foo,而不是传递给Panel

是的,我知道这是不好的做法,但这只是暂时的解决方法。

0 投票
0 回答
164 浏览

python - Python functools partial definition

From the functools documentation, the partial function is "roughly equivalent to"

However, I don't understand the need for the lines

in the definition. If I create a partial function without these three lines it behaves exactly the same as the definition including those lines. The documentation page says that the partial object must have the three attributes func, args, and keywords, so I can see why the above function definition inludes these, but I still don't see what tangible goal they accomplish.

0 投票
2 回答
236 浏览

python - 如何将 functools.partial 与 os.path.join 一起使用?

有一个路径 + 文件名的列表,都以相同的root_dir. 如何使用部分?

试图

但是,这会引发错误:

TypeError:join() 为关键字参数“路径”获取了多个值


显然我可以写一个新函数:


但是我想使用partial. 任何线索如何?