问题标签 [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 回答
1374 浏览

python - 不是 Python 函数

我正在尝试构建一个函数,该函数可以用作我正在映射的 RxPy 流的处理程序。我拥有的函数需要访问定义该变量的范围之外的变量,对我来说,这意味着我需要使用某种闭包。所以我到达 functools.partial 以关闭一个变量并返回一个部分函数,​​我可以将其作为观察者传递给我的流。

但是,这样做会导致以下结果:

这是一些重现问题的示例代码:

问题似乎是我的部分函数False在调用inspect.isfunction.

如何使我的部分函数通过此检查?有没有办法轻松地将部分函数转换为“真实”函数类型?

0 投票
1 回答
78 浏览

python - 传递/更改作为另一个函数中的参数传递的函数的参数

我有一个奇怪的问题。我想传递/更改一个函数的参数,该函数本身作为参数传递给其他函数。有关更多详细信息,请参见下面的代码

因此,我通过 using将我的post_processing方法及其所有参数传递给我,并将一个新变量传递给我的 post_processing 方法。但更可取的是 直接传递或赋值给变量to 。generic_methodfunctools's partialattrvalattr_valueypost_processing

我一直在寻找在运行时修改函数参数的方法。我在网上搜索,发现它们是inspectpython 中的一个库,它告诉你传递给函数的参数。这种情况下能用吗。

0 投票
1 回答
34 浏览

python - 在类中定义 python 装饰器的正确方法是什么?

我想要实现的是以下代码输出以下内容:

  • 这里1
  • 这里2
  • Here3 argOne argTwo

我想知道我对 __call__ 的使用是否会以某种方式破坏 functools.wraps; 似乎这些论点在某些时候丢失了。

我想要实现的目标是可能的吗?

0 投票
2 回答
1259 浏览

python - 如何将包装函数与 functools.partial 进行比较?

如果我将我的功能定义如下:

然后myfunc == myfunc将返回True

functools.partial(myfunc, arg2=1) == functools.partial(myfunc, arg2=1)会回来False

出于单元测试的目的,是否有一种简单的方法来测试部分函数是否是我所期望的?

0 投票
2 回答
1128 浏览

python - Total_ordering 和类继承

据我了解,total_ordering装饰器functools不能很好地与从有序类继承的类一起工作:它不会尝试定义比较函数,因为它们已经定义了。

看这个例子:

在所有测试中,只有涉及<操作员的测试给出了预期的结果。

>通过添加__gt__ = lambda *_ : NotImplemented到类定义中,我可以使它们也能正常工作。另一方面,如果我为__le__or添加类似的定义__ge__,则相应的测试会因 (for __le__) 而失败:

这使我相信这不是解决问题的正确方法。

因此,问题是:有没有一种适当的方法可以用 total_ordering 重新排序一个类?

(是的,我知道total_ordering手工完成 's 的工作是微不足道的,而且我知道对于这个例子,定义一个无序namedtuple的也是微不足道的。)

0 投票
1 回答
655 浏览

python - 忽略参数的 Python 对应部分

python中是否有“对应物” functools.partial

即我要避免的是写:

但我很想保留与编写时相同的属性(keyword-args、nice repr):

代替

我知道这样的东西很容易写,但我想知道是否已经有一种忽略参数的标准方法。

一个常见的用例是 Qts Signals and Slots。

0 投票
1 回答
237 浏览

python - python的部分内联调用吗?

也可以这样par

par

等价?如果不是为什么?

0 投票
1 回答
1157 浏览

python - 带有 functool.partial 绑定参数的 Python mock.patch.object 可能吗?

如何解决这个问题?用另一个签名修补对象方法(例如,附加参数。我尝试绑定可选参数,但这似乎不起作用。我不能在这里使用普通的猴子修补,因为修补的类在一个我无法以其他方式修补它的位置。

任何帮助表示赞赏。

调用上下文 mock.patch.object 时,我收到以下错误:

但是使用 None 作为第一个参数调用 my_len 可以按预期工作(打印输出 2)。

假设可以简单地使用猴子补丁,它可以工作,如果手动调用len并将实例作为第一个参数。但这当然是不希望的:

0 投票
5 回答
26821 浏览

python - Python functools lru_cache 与实例方法:释放对象

如何functools.lru_cache在不泄漏内存的情况下使用内部类?

在下面的最小示例中,foo尽管超出范围并且没有引用者(除了 ),但不会释放实例lru_cache

但是foo因此foo.big(a BigClass) 还活着

这意味着Foo/BigClass实例仍然驻留在内存中。即使删除Foo(del Foo) 也不会释放它们。

为什么要lru_cache保留实例?缓存不使用一些哈希而不是实际对象吗?

lru_cache在类中使用 s的推荐方式是什么?

我知道两种解决方法: 使用每个实例缓存使缓存忽略对象(但这可能会导致错误的结果)

0 投票
1 回答
185 浏览

python - 通过自己的纯 Python impl 导入 functools 的好处?

我找到了这段代码并开始想,为什么不简单地将导入替换为自己的实现呢?使用 functools.partial 有什么(性能)好处吗?它是用纯 Python 还是本机代码实现的?