python - 如何在for循环中创建多个函数?
问题描述
我想在一个 for 循环中创建多个函数,分别是 func1、func2、...、funci,它们都采用不同的定义。我已经测试了以下方法,但它们给我带来了错误。正确的方法是如何做到的:
我想要的是:
for i in range(1, 10):
func1(x, args1):
do something
func2(x, args2):
do something
我做了什么但没有工作:
for ii in range(1,10):
def globals()["func{}".format(ii)](t, "args{}".format(ii))
for ii in range(1,10):
def "func{}".format(ii)(t, "args{}".format(ii))
对于我遇到的问题,我只发现以下链接不适用于我的目的。
解决方案
我认为使用检查签名功能的这个答案可以满足您的需求。如果没有,或者您认为它太复杂,我能想到的唯一方法是使用:eval
for i in range(1, 10):
eval(f"""def func{i}(arg{i}):
print(arg{i})""")
请阅读这里为什么你不应该这样做。
推荐阅读
- php - 使用 Carbon::now() 插入日期时间,但添加一个空属性 Laravel
- linux - Drupal 8:如何为节点使用私有文件系统
- spring-boot - Spring Boot:Kotlin 和 MongoRepository:执行全文搜索
- c - WiringPiISR 在每个引脚触发回调
- angular - 使用 IONIC 存储服务,如何获取和返回存储的 JSON 数据?
- yocto - 构建镜像后如何在 Yocto 项目中构建额外的包
- java - Spring Boot Admin:必须启用健康或状态端点
- react-native - React Native - 无法在单个文件中定义多个堆叠的导航器
- android-studio - 我们可以为 Unity3D 转换 Android Studio 项目吗?
- c# - 在 WPF 的第二个窗口中访问 Filesystemwatcher 值