当前位置: 首页 > 面试题库 >

如何动态定义函数?

景嘉实
2023-03-14
问题内容

我有这样的功能:

def activate_field_1():
   print 1

def activate_field_2():
   print 2

def activate_field_3():
   print 3

如何定义activate_field_[x]x=1:10,而不打字了他们中的每一个?当然,我宁愿传递一个参数,但是出于我的目的,这是不可能的。


问题答案:

您是否要在源文件中静态地单独定义它们?那么最好的选择是编写一个脚本来生成它们。

另一方面,如果您希望在运行时使用这些功能,则可以使用更高阶的功能。例如

>>> def make_func(value_to_print):
...     def _function():
...         print value_to_print
...     return _function
...
>>> f1 = make_func(1)
>>> f1()
1
>>> f2 = make_func(2)
>>> f2()
2

您可以生成这些列表并再次在运行时进行存储。

>>> my_functions = [make_func(i) for i in range(1, 11)]
>>> for each in my_functions:
...     each()
...
1
2
3
...


 类似资料:
  • 问题内容: 我想在SASS中动态创建mixins,以列表中的每个项目命名,但是似乎不起作用。 我尝试了这个,但出现错误: 错误: SASS不支持此用法吗?我在手册中找不到任何相关内容。 问题答案: 当前似乎不支持@mixins中的变量插值。 SASS文档将其称为并描述如下: 插值:#{} 您还可以使用#{}插值语法在 选择器 和 属性名称中 使用SassScript变量: 根据文档,仅选择器和属性

  • 我有一个具有以下结构的数据集: 我想提供一个函数,它允许计算任何值之间的差异,我想这样做使用s这样的函数:(假设参数和作为参数传递) 当然,这不起作用,因为使用非标准评估。我知道现在有一个优雅的解决方案,可以使用来解决这个问题,我已经读过这个小插曲,但我仍然无法理解它。 怎么办? 以下是数据集的前几行,以获得一个可复制的示例

  • 问题内容: 我正在使用Python3.4,并且尝试安装Fuzzy模块 由于提到了它仅适用于Python2,因此我尝试使用cython对其进行转换。这些是我遵循的步骤: cython Fuzzy.pyx gcc -g -02 -fpic -c Fuzzy.c -o Fuzzy.o 对double_metaphone.c做相同的操作 gcc -shared -o Fuzzy.so Fuzzy.o do

  • 在之前的一家公司作为终端用户使用了几年后,我对Jira admin这方面的工作还不熟悉。我们使用的是标准的Jira工作流程。我正在努力解决的情况如下。我正在尝试匹配我们旧的专有问题数据库的一些功能。现在我使用了许多标准的Jira字段,只有两个新的自定义字段(两个单选列表都是我手动填充的): 1) Customer=向我们的支持团队发送新问题电子邮件的客户姓名2)Customer Contact=当

  • 问题内容: 我有以下代码: 我怎么能叫和动态? 例如: 我使用了大括号,因为这是我以前在PHP中使用的方式,但是显然不起作用。 如何使用Python做到这一点? 问题答案: 如果不想使用并且不想创建单独的模块和/或类来封装要动态调用的函数,则可以将它们作为当前模块的属性来调用: