假设我有一个泛型函数f,我想以编程方式创建一个行为与f相同但具有自定义签名的函数f2。

更多细节

给定列表l和字典d,我希望能够:将f2的非关键字参数设置为l中的字符串

将f2的关键字参数设置为d中的键,将默认值设置为d中的值

假设我们有l=["x", "y"]

d={"opt":None}

def f(*args, **kwargs):

#My code

然后我想要一个有签名的函数:def f2(x, y, opt=None):

#My code

特定用例

这只是我特定用例的简化版本。我只是举个例子。

我的实际用例(简化)如下。我们有一个通用的启动函数:def generic_init(self,*args,**kwargs):

"""Function to initiate a generic object"""

for name, arg in zip(self.__init_args__,args):

setattr(self, name, arg)

for name, default in self.__init_kw_args__.items():

if name in kwargs:

setattr(self, name, kwargs[name])

else:

setattr(self, name, default)

我们想在很多类中使用这个函数。特别是,我们希望创建一个函数init,其行为类似于泛型初始化,但在创建时间具有由某些类变量定义的签名:class my_class:

__init_args__=["x", "y"]

__kw_init_args__={"my_opt": None}

__init__=create_initiation_function(my_class, generic_init)

setattr(myclass, "__init__", __init__)

我们希望create_initiation_函数使用init_args和kw_init_args定义的签名创建一个新函数。是否可以写入创建初始化函数?

请注意:如果我只是想改进帮助,我可以设置doc。

我们想在创建时设置函数签名。在那之后,就不需要改变了。

我们不需要创建一个类似generic_init的函数,而是使用一个不同的签名,我们可以创建一个新的函数,使用所需的签名,它只调用generic_init

我们要定义创建初始化函数。我们不想手动指定新函数!

相关的

python设置函数_在Python中设置函数签名相关推荐

  1. php回调函数和匿名函数吗,php回调函数_关于php中匿名函数与回调函数的详解

    摘要 腾兴网为您分享:关于php中匿名函数与回调函数的详解,壹学车,小天才,尚游戏,厦门百姓等软件知识,以及微信一键转发工具,幸运抽奖系统,文字识别app,垃圾清理管家,王者荣耀起名神器,叮咚出行,世 ...

  2. python imshow参数_用matplotlib中imshow()函数绘图

    matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...

  3. java arraylist 函数_使用Java-8中的函数ArrayList

    问题描述: 我希望能够使用从另一个类传入的函数的ArrayList(其中函数已在其他类中定义).如果在一个类中定义了可能具有不同输入和返回类型的函数列表,我希望能够将其中一些的ArrayList(可能 ...

  4. c打印行号和函数_使用C中的函数名称,行号从任何函数打印错误消息

    c打印行号和函数 Sometimes, it is necessary to print some message on logic failure or anytime with the funct ...

  5. python symbol函数展开_QGIS表达式中的函数

    编程语言中的函数,与数学函数的定义大不相同.在计算机领域,函数是指一段可以直接被另一段程序或代码引用的程序或代码,也叫做子程序(subroutine).过程(procedure).方法(method) ...

  6. python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)

    目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...

  7. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  8. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  9. android 设置全屏方法,Android中设置全屏的方法

    在开发中,我们经常需要把我们的应用设置为全屏,这里有两种方式: 一是在代码中设置; 二是在配置文件中设置 一. 在代码中设置 public class BaseActivity extends Act ...

  10. oracle杀死进程时权限不足_在oracle中创建函数时权限不足

    我对oracle有一点了解.我试图创建一个如下所示的函数.在oracle中创建函数时权限不足 CREATE OR REPLACE FUNCTION "BOOK"."CON ...

最新文章

  1. linux内存布局及页面映射
  2. Oracle数据库游标在存储过程中的使用
  3. PHP的错误机制总结
  4. Paper之BigGAN:ICLR 2019最新论文《LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS》(未完待续)
  5. 蓝桥杯乘法运算java,第四届蓝桥杯Java B——有理数类
  6. kibana java script_Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布 - TGCode...
  7. netapp脚本保存日志_Shell脚本实战:日志关键字监控+自动告警
  8. CCF201709-3 JSON查询(100分)【文本处理】
  9. zookeeper 可以干什么
  10. DevExpress Windows Form(1) DevExpress控件之主题
  11. 2019年的读书印记
  12. 苹果系统备份文件服务器地址,苹果备份文件在哪里?苹果怎样恢复备份
  13. 2021年焊工(初级)最新解析及焊工(初级)找解析
  14. 初中数学知识点总结_初中数学知识点汇总大全【超详细】,初中数学知识点归纳公式大全...
  15. 什么软件可以测试手长,心率检测专家-可以让你通过按压手指检测出心率的健康app...
  16. Java_题目_抽奖的2种实现方法
  17. 【历史上的今天】9 月 5 日:Scala 之父出生;华为发布麒麟 980 芯片;计算机存储器的革命
  18. java jvm垃圾回收算法_深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法
  19. CSS - 制作网页技巧
  20. 144-小珂的苦恼(nyoj)

热门文章

  1. git status清空_本地删除文件后,git status会显示红色的那个文件。
  2. split函数python统计英文单词_统计一篇英文文章单词个数,取出出现频次前10的单词(Python实现)...
  3. qpython获取手机gps_基于Python获取照片的GPS位置信息
  4. java mvc建包结构_Java SSM框架的配置方法、MVC结构的分析、响应的流程
  5. 域环境下文件服务器,域和文件服务器
  6. python数据科学实践 常象宇_Python数据科学实践
  7. vue学习:事件传递(冒泡和捕获),事件委托,jquery中的事件委托,$event 获取元素,vue事件修饰符
  8. 一般java,【面试题】java一般
  9. Redis五种数据类型及应用场景
  10. Mybatis源码分析之(一)搭建一个mybatis框架(写一个mybatis的Demo)