python设置函数_在Python中设置函数签名
假设我有一个泛型函数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中设置函数签名相关推荐
- php回调函数和匿名函数吗,php回调函数_关于php中匿名函数与回调函数的详解
摘要 腾兴网为您分享:关于php中匿名函数与回调函数的详解,壹学车,小天才,尚游戏,厦门百姓等软件知识,以及微信一键转发工具,幸运抽奖系统,文字识别app,垃圾清理管家,王者荣耀起名神器,叮咚出行,世 ...
- python imshow参数_用matplotlib中imshow()函数绘图
matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...
- java arraylist 函数_使用Java-8中的函数ArrayList
问题描述: 我希望能够使用从另一个类传入的函数的ArrayList(其中函数已在其他类中定义).如果在一个类中定义了可能具有不同输入和返回类型的函数列表,我希望能够将其中一些的ArrayList(可能 ...
- c打印行号和函数_使用C中的函数名称,行号从任何函数打印错误消息
c打印行号和函数 Sometimes, it is necessary to print some message on logic failure or anytime with the funct ...
- python symbol函数展开_QGIS表达式中的函数
编程语言中的函数,与数学函数的定义大不相同.在计算机领域,函数是指一段可以直接被另一段程序或代码引用的程序或代码,也叫做子程序(subroutine).过程(procedure).方法(method) ...
- python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)
目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- android 设置全屏方法,Android中设置全屏的方法
在开发中,我们经常需要把我们的应用设置为全屏,这里有两种方式: 一是在代码中设置; 二是在配置文件中设置 一. 在代码中设置 public class BaseActivity extends Act ...
- oracle杀死进程时权限不足_在oracle中创建函数时权限不足
我对oracle有一点了解.我试图创建一个如下所示的函数.在oracle中创建函数时权限不足 CREATE OR REPLACE FUNCTION "BOOK"."CON ...
最新文章
- linux内存布局及页面映射
- Oracle数据库游标在存储过程中的使用
- PHP的错误机制总结
- Paper之BigGAN:ICLR 2019最新论文《LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS》(未完待续)
- 蓝桥杯乘法运算java,第四届蓝桥杯Java B——有理数类
- kibana java script_Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布 - TGCode...
- netapp脚本保存日志_Shell脚本实战:日志关键字监控+自动告警
- CCF201709-3 JSON查询(100分)【文本处理】
- zookeeper 可以干什么
- DevExpress Windows Form(1) DevExpress控件之主题
- 2019年的读书印记
- 苹果系统备份文件服务器地址,苹果备份文件在哪里?苹果怎样恢复备份
- 2021年焊工(初级)最新解析及焊工(初级)找解析
- 初中数学知识点总结_初中数学知识点汇总大全【超详细】,初中数学知识点归纳公式大全...
- 什么软件可以测试手长,心率检测专家-可以让你通过按压手指检测出心率的健康app...
- Java_题目_抽奖的2种实现方法
- 【历史上的今天】9 月 5 日:Scala 之父出生;华为发布麒麟 980 芯片;计算机存储器的革命
- java jvm垃圾回收算法_深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法
- CSS - 制作网页技巧
- 144-小珂的苦恼(nyoj)
热门文章
- git status清空_本地删除文件后,git status会显示红色的那个文件。
- split函数python统计英文单词_统计一篇英文文章单词个数,取出出现频次前10的单词(Python实现)...
- qpython获取手机gps_基于Python获取照片的GPS位置信息
- java mvc建包结构_Java SSM框架的配置方法、MVC结构的分析、响应的流程
- 域环境下文件服务器,域和文件服务器
- python数据科学实践 常象宇_Python数据科学实践
- vue学习:事件传递(冒泡和捕获),事件委托,jquery中的事件委托,$event 获取元素,vue事件修饰符
- 一般java,【面试题】java一般
- Redis五种数据类型及应用场景
- Mybatis源码分析之(一)搭建一个mybatis框架(写一个mybatis的Demo)