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

python - 动态创建的方法和装饰器,得到错误 'functools.partial' 对象没有属性 '__module__'

我目前正在使用 EndpointsModel 为我在 AppEngine 上的所有模型创建一个 RESTful API。由于它是 RESTful,这些 api 有很多我想避免的重复代码。

例如:

我想让它们变得通用。所以我尝试向类动态添加方法。到目前为止我已经尝试过:

但我明白了,我认为这是因为's 装饰器和部分装饰器'functools.partial' object has no attribute '__module__' exception. 之间存在一些冲突。endpoints.method但不知道如何避免它。

相关文章:

0 投票
1 回答
740 浏览

python - Python:多参数函数的组合/无/ functools

致力于编写一个看似简单的函数来查找事物的累积。它非常抽象,它的签名是这样的:

关于这个问题的更多信息:

“Accumulate 将相同的参数 term 和 n 作为总和和乘积作为参数,以及一个组合器函数(两个参数),它指定如何将当前项与前面项的累加组合,以及一个指定什么的起始值用于开始累积的基础值。” ——来自加州大学伯克利分校 CS61A 2013 年秋季,John DeNero

"Combiner" 是指从 "start" 到 "n" 的术语将被累加的方式(可以是 add、sub、mul 等)。组合器最多需要 2 个参数。

“术语”是指应用于以“start”开头并以“n”结尾的每个术语的函数。这可能意味着取每一项的平方、sqrt、n%//2。

我想在不必使用 functools.reduce 的情况下解决这个问题。

我知道我必须制作一个函数组合循环,但这是让我感到困惑的部分。然后,我必须让每个函数接受两个参数:旧累积和当前项。

我已经为此工作了 2 天,并且把自己搞糊涂了,所以我的代码搞砸了。有什么建议么?

“start+now+1”是指我不能开始在 term(n) 上执行组合器功能,直到我至少有 n 项。但是后来我变得困惑,因为我必须在存储旧总和并更新它的同时继续组合最后两个值。

0 投票
1 回答
3039 浏览

python - functools.partial 和生成器

我正在尝试执行以下操作:

那里有什么问题?

0 投票
1 回答
4181 浏览

python - python mock:@wraps(f) 问题

我想测试我写的一个简单的装饰器:

它看起来像这样:

然后我使用 python-mock 对其进行测试:

但它反击:

我知道functools.wraps()只是一个辅助包装器。所以如果我把它拿出来测试就可以了。

我可以让 Mock 与 functools.wraps() 一起玩吗?

Python 2.7.3

0 投票
1 回答
1308 浏览

python - 如何测试 functools.partial 生成预期的函数对象

当从一个 API 转到另一个 API 时,有时在每个 API 中的相似关键字之间进行映射会很有帮助,允许一个控制器 API 灵活地分派到其他库,而无需用户在后台对不同 API 大惊小怪。

假设某个库 ,other_api有一个名为 的方法"logarithm",并且 base 的关键字参数是我需要从我的代码中分解出来的东西,比如"log_base_val"; 所以要使用它,other_api我需要输入(例如):

考虑一个这样的玩具类:

使用Foo,我可以映射一些其他 API,其中始终调用此参数base,如下所示:

并且ln在逻辑上等价于 (with log_base_val=math.ein kwargs, from functools):

但是,通过调用手动绑定相同的参数functools会导致不同的函数对象:

因此测试f1 == f2不会按预期成功:

所以问题是:测试参数绑定函数是否产生正确的输出函数对象的规定方法是什么?

0 投票
1 回答
209 浏览

python - 动态生成 Pandas 视图

我有几个类都引用相同的熊猫数据框,但只有部分数据框与每个类相关。我还希望在不使用高级索引的情况下轻松访问相关行,因为由于索引中的数字级别,它会变得重复。因此,我编写了生成部分函数的代码,以便每个类都可以查看其切片。

但是,我希望引用不必看起来像 foo.x()[date],而是看起来像 foo.x[date]。

结果,我创建了一个装饰器来包装函数并返回值。

我担心的是我不会总是获得数据框的当前状态。

这是实现我的目标的正确方法吗?

0 投票
1 回答
110 浏览

python - 修复装饰器参数

我有以下第三方装饰器:

我想制作另一个装饰器 ,@my_retry它类似于@retry,但具有固定参数。

我尝试过使用functools.partial

但是当我使用新的装饰器时,我得到了以下异常:

我究竟做错了什么?

0 投票
2 回答
72 浏览

python - 有没有办法将函数转换为接受在函数之前评估的可调用对象?

假设我有一个字符串列表:

我想使用一些函数将它们与特定的小写字符串进行比较foo

有没有办法改变foo接受在bar评估 foo 之前评估的可调用对象?所以我可以写这样的东西:

0 投票
1 回答
297 浏览

python - Python:functools,方法的包装装饰器:使用“?”时使 ipython 返回正确的定义

我正在使用 functools 制作一个装饰器,它允许我记录方法调用的详细信息。

我在这里得到了很多帮助来编写它……它不是我自己的,我仍在学习它是如何工作的……

我经常使用 ipython,当我使用时:

这是我的问题线...除了我还没有写文档字符串...:|

我希望是:

包装:

更新:在 ipython 中我这样做是为了看看发生了什么,但它还没有帮助我..

0 投票
1 回答
599 浏览

python - 将按钮信号绑定到 Qt 中的插槽所需的另一种解决方案

我正在尝试Slicer使用 qt 在 Python 中开发一个模块。我有一个按钮列表(QPushButton),我希望它们的每个"clicked"信号都绑定到相同的方法,但传递不同的参数(这只是为了知道按下了哪个按钮)。

我正在寻找的是这样的:

我已经使用了这里这里建议的所有三种方式,但我有不同的问题:

  • 解决方案一团糟,QSignalMapper因为我不能使用 PyQt/PySide。

  • lambda 解决方案使我的代码始终打印最后一个按钮的文本,无论按下哪个按钮。我写了类似的东西:

    /li>
  • 部分解决方案实现为:

    但我收到以下错误:

    /li>

现在我正在使用一个可怕的不同书面方法列表,所以我的丑陋解决方案有效,是:

我希望我的问题以前没有被问过,你可以帮助我。

谢谢!