使用自定义名称创建 Python 动态函数

2023-12-07

如果这个问题已经提出并得到回答,我们深表歉意。 我需要做的概念非常简单,但不幸的是我无法在网上找到答案。

我需要在运行时使用自定义名称在 Python (Python2.7) 中创建动态函数。每个函数的主体也需要在运行时构造,但对于所有函数来说(几乎)都是相同的。

我从一份名单开始。

func_names = ["func1", "func2", "func3"]

请注意,func_name 列表可以保存任意名称的列表,因此名称不会简单地是 func1、func2、func3,...。

我希望结果是:

    def func1(*args):
        ...

    def func2(*args):
        ...

    def func3(*args):
        ...

我需要这样做的原因是每个函数名称对应一个测试用例,然后从外部世界调用该测试用例。

update: 没有用户输入。我正在连接一个更大模块的两端。一端确定测试用例是什么,除其他外,还填充测试用例名称列表。另一端是函数本身,它必须与测试用例的名称进行 1:1 映射。所以我有测试用例的名称,我知道我想对每个测试用例做什么,我只需要创建具有测试用例名称的函数。由于测试用例的名称是在运行时确定的,因此基于这些测试用例的函数创建也必须在运行时确定。

update:我还可以将这个自定义命名函数包装在一个类中,如果这会让事情变得更容易的话。

我可以将函数的内容硬编码在字符串中(因为它们几乎相同),或者我可以将其基于先前定义的基类。只需知道如何使用此内容填充函数即可。

例如:

    func_content = """
                   for arg in args:
                       print arg
                   """

提前致谢,

Mahdi


对于您所描述的,我认为您不需要深入研究 eval 或宏 - 通过闭包创建函数实例应该可以正常工作。例子:

def bindFunction1(name):
    def func1(*args):
        for arg in args:
            print arg
        return 42 # ...
    func1.__name__ = name
    return func1

def bindFunction2(name):
    def func2(*args):
        for arg in args:
            print arg
        return 2142 # ...
    func2.__name__ = name
    return func2

但是,您可能希望按名称将这些函数添加到某个范围,以便您可以按名称访问它们。

>>> print bindFunction1('neat')
<function neat at 0x00000000629099E8>
>>> print bindFunction2('keen')
<function keen at 0x0000000072C93DD8>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用自定义名称创建 Python 动态函数 的相关文章

  • Javascript 与 Python 关于 Python 'map()' 函数的比较

    Python中有一个函数叫做map这可以让你去 map someFunction x y z 并继续应用该功能的列表 是否有与此功能等效的 JavaScript 我现在刚刚学习Python 虽然我被告知javascript是函数式语言 但我
  • Python 应用程序的最佳项目结构是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 想象一下 您想要用 Python 开发一个重要的最终用户桌面 不是 Web 应用程序 构建项目文件夹层次结构的最佳方法是什么 理想的特
  • API 端点的 Django 子域配置

    我已经建立了一个 Django 项目 它使用django rest framework提供一些 ReST 功能 网站和其他功能都运行良好 然而有一个小问题 我需要我的 API 端点指向一个不同的子域 例如 当用户访问该网站时 他 她可以根据
  • PyList_SetItem 与 PyList_SETITEM

    据我所知 PyList SetItem 和 PyList SETITEM 之间的区别在于 PyList SetItem 会降低它覆盖的列表项的引用计数 而 PyList SETITEM 不会 我有什么理由不应该一直使用 PyList Set
  • Python 中的安全解除引用

    Groovy 有一个很好的安全取消引用运算符 这有助于避免 NullPointerExceptions variable method The method仅当以下情况时才会被调用variable is not null 有没有办法在 Py
  • 将 API 数据存储到 DataFrame 中

    我正在运行 Python 脚本来从 Interactive Brokers API 收集金融市场数据 连接到API后 终端打印出请求的历史数据 如何将数据保存到数据帧中而不是在终端中流式传输 from ibapi wrapper impor
  • Scikit-learn 的内核 PCA:如何在 KPCA 中实现各向异性高斯内核或任何其他自定义内核?

    我目前正在使用Scikit learn 的 KPCA https scikit learn org stable modules generated sklearn decomposition KernelPCA html对我的数据集执行降
  • html 解析器 python

    我正在尝试解析一个网站 我正在使用 HTMLParser 模块 问题是我想解析第一个 a href 评论后 但我真的不知道该怎么做 所以我在文档中发现有一个函数叫做handle comment 但我还没有找到如何正确使用它 我有以下内容 i
  • 如何在 ReportLab 段落中插入回车符?

    有没有办法在 ReportLab 的段落中插入回车符 我试图将 n 连接到我的段落字符串 但这不起作用 Title Paragraph Title n Page myStyle 我想要这样做 因为我将名称放入单元格中 并且想要控制单元格中的
  • Pyspark 数据框逐行空列列表

    我有一个 Spark 数据框 我想创建一个新列 其中包含每行中具有 null 的列名称 例如 原始数据框是 col 1 col 2 col 3 62 45 null 62 49 56 45 null null null null null
  • 为 Networkx 图添加标题?

    我希望我的代码创建一个带有标题的图 使用下面的代码 可以创建绘图 但没有标题 有人可以告诉我我做错了什么吗 import pandas as pd import networkx as nx from networkx algorithms
  • 网页抓取 - 前往第 2 页

    如何访问数据集的第二页 无论我做什么 它都只返回第 1 页 import bs4 from urllib request import urlopen as uReq from bs4 import BeautifulSoup as sou
  • 如何使用 Python 多处理避免在分叉进程中加载​​父模块

    当您创建一个Pool使用Python的进程multiprocessing 这些进程将分叉 父进程中的全局变量将显示在子进程中 如下面的问题所述 如何限制多处理进程的范围 https stackoverflow com questions 2
  • 如何检查列表是否为空?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 例如 如果通过以下内容 a 我如何检查是否a是空的 if not a print Lis
  • 如何在 Python 中从 HTML 页面中提取 URL [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须用Python 编写一个网络爬
  • Spark中的count和collect函数抛出IllegalArgumentException

    当我使用时抛出此异常时 我尝试在本地 Spark 上加载一个小数据集count 在 PySpark 中 take 似乎有效 我试图搜索这个问题 但没有找到原因 看来RDD的分区有问题 有任何想法吗 先感谢您 sc stop sc Spark
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • 大型数据集上的 Sklearn-GMM

    我有一个很大的数据集 我无法将整个数据放入内存中 我想在这个数据集上拟合 GMM 我可以用吗GMM fit sklearn mixture GMM 重复小批量数据 没有理由重复贴合 只需随机采样您认为机器可以在合理时间内计算的尽可能多的数据
  • Jupyter Notebook:没有名为 pandas 的模块

    我搜索了其他问题 但没有找到任何有帮助的内容 大多数只是建议您使用 conda 或 pip 安装 pandas 在我的 jupyter 笔记本中 我试图导入 pandas import pandas as pd 但我收到以下错误 Modul
  • 如何正确消除字典中的元素直到只剩下一个字符串

    我真的需要这方面的帮助 def get winner dict winner new dict for winner in dict winner first letter winner 0 value dict winner winner

随机推荐

  • Oracle Apex 18.1 交互式网格 (IG) 以编程方式设置过滤器?自定义 IG 搜索

    有没有办法通过 Javascript 或 PL SQL API 在 Oracle Apex 中为 IG 设置过滤器 在进行研究时我偶然发现APEX IG 5 1 4 食谱或一些博文如何破解 APEX 交互式网格系列用于使用 Javascri
  • Git post-receive 挂钩不会从 master 中删除已删除的文件

    我在我的服务器上创建了一个裸 git 存储库 并设置了以下 post receive 挂钩这个博客 bin bash while read oldrev newrev ref do branch echo ref cut d f3 if m
  • 如何在 Perl 中进行自省?

    在 Perl OOP 中 如何转储此类及其父类中的所有方法 字段 my self 我看到了很多上面的构造函数 那么 什么是 我有 Java OOP 背景 如果你的解释能够遵循Java领域 我会更容易理解 What is See perldo
  • 不在 gridview 中显示日期时间最小值

    given public class Customer public int Id get set public string FirstName get set public DateTime Birthdate get set 我有一个
  • 使用reducebykey时出错:int对象不可订阅

    我收到错误 int 对象不可订阅 执行以下脚本时 element reduceByKey lambda x y x 1 y 1 with element 是一个键值 RDD value 是一个元组 输入示例 A toto 10 A titi
  • 如何为 iPhone 设置视口元以正确处理旋转?

    所以我一直在使用 让我的 HTML 内容在 iPhone 上完美显示 它工作得很好 直到用户 将设备旋转到横向模式 其中显示仍限制为 320 像素 有没有一种简单的方法来指定一个视口 该视口会随着用户更改而变化 设备方向 或者我必须求助于
  • 对于终端应用程序来说,什么是好的 Java 类诅咒库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想编写一个进行屏幕操作的 Java 终端应用程序 是否有任何好的库可以让您像 nix C 世界中的诅咒一样操作屏幕 我正在寻找的最小功能是窗口和用
  • 对多个任意过滤条件使用 tidy eval

    我想用整齐的评价编写多个完全灵活的过滤条件 一个相关但不太复杂的问题已解决在这个 Stackoverflow 问题中 以下代码 改编自上述其他问题 正在运行 它将两个过滤条件应用于gapminder数据集 并返回过滤后的数据 library
  • GAE 通过 app.yaml、python 装饰器或 users.get_current_user 强制登录?

    我在 GAE 应用程序的 app yaml 配置文件中使用 登录 选项 看起来像这样 url admin script myapp app login admin url script myapp app login required 更新
  • Pandas 用最后一个已知值填充空尾随值

    我有几个具有不同结束时间段的专栏 需要用最后一个已知值填充空数据 有没有一种 Pandas 方法可以做到这一点 而无需在结束日期上循环 我需要过去 4 个月的 Gain sum y 等于 57129 0 gain sum x gain su
  • JSF - @PostConstruct 可以使用 ajax 调用来阻止 setter 方法吗?

    我想这个问题从标题就已经很清楚了 这是我真正的豆子 ManagedBean name selector RequestScoped public class Selector private String profilePage PostC
  • “静态只读”与“常量”

    我读过有关const and static readonly字段 我们有一些只包含常量值的类 它们用于我们系统中的各种事物 所以我想知道我的观察是否正确 这些常数值是否应该始终是static readonly对于所有公开的事情 并且只使用c
  • 将选项卡名称和 ConqueShell 与 Vim 会话一起保存

    有没有办法让 vim 保存选项卡名称 通过分配选项卡名称脚本 和 或终端仿真器 通过设置康克外壳脚本 发出后 mksession fileName 命令 观察下面 放大 我在左侧有一个工作会话 并且通过vim S fileName命令 在右
  • Spark.sql.shuffle.partitions 到底指什么?

    到底是做什么的spark sql shuffle partitions参考 我们谈论的是宽变换结果的分区数量 还是中间发生的事情 例如宽变换结果分区之前的某种中间分区 因为根据我的理解 根据广泛的转变 我们有 Parents RDDs gt
  • 无法推导出模板参数(向量、std::function)

    我创建了一个模板化函数 我试图自动推导模板参数 MCVE 编译它 template
  • 当隔离被杀死时,颤振隔离内的计时器不会停止

    我有一个应用程序使用 API 调用将操纵杆位置数据上传到网络服务器 当操纵杆移动时会调用此方法 如果操纵杆不在中心 它将停止任何先前运行的隔离并启动新的隔离 void onJoystickMoved double angle double
  • 在 FormFlows - Bot Framework 中添加另一个 Quit 关键字

    是否可以使用 Bot Framework 更改 FormDialog 中退出突击队的关键字 我想在键入某个单词时抛出 FormCanceledException 不使用英语作为语言 如果我可以更改关键字 或者添加另一个与退出相同的关键字 那
  • 安卓图像按钮

    如何创建一个没有文本且图像水平居中的按钮 我不想使用图像按钮 因为我想定义不同的背景图像 您只需使用 ImageButton 并将背景设置为您想要的任何内容并将图标设置为 src
  • Tinder 像泛 iOS

    对于 iOS 中的 Tinder 应用程序 我假设他们在图像视图上使用平移手势识别器 为什么用户开始移动的图像下方会显示另一张图像 他们是否有另一个图像视图 并且在手势识别器完成后 动态设置图像视图手势识别器 最后在下面创建另一个图像视图
  • 使用自定义名称创建 Python 动态函数

    如果这个问题已经提出并得到回答 我们深表歉意 我需要做的概念非常简单 但不幸的是我无法在网上找到答案 我需要在运行时使用自定义名称在 Python Python2 7 中创建动态函数 每个函数的主体也需要在运行时构造 但对于所有函数来说 几