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

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

相关的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql新建数据表_Mysql创建数据库与表,并添加表的数据

首先,在成功安装Mysql的基础上,进入到cmd窗口,登录我们的mysql管理系统。登录方式:mysql -u用户名 -p密码如果出现Welcome to...等一大堆英文指示,则说明成功进入了mysql系统。因为我们不知道系统中有哪些库&#xff0…

mysql数据库管理维护_(转)Mysql数据库管理 表的维护

原文:http://t.dbdao.com/archives/mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86-%E8%A1%A8%E7%9A%84%E7%BB%B4%E6%8A%A4.html一、目标完成本课程后,你应该能够:认识不同类型的表维护操作执行维护表的SQL语句使用客户端和实用程序维护…

mysql如何使用事件_MySQL事件的使用详解

在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句。这个时候就会用到mysql事件,使用这个功能必须保证是mysql的版本是5.1以上。1.首先要查看事件是否开启了,SHOW VARIABLES LIKE event_scheduler;SELECT event_scheduler…

mysql 提交乱码问题_mysql数据库乱码问题

变量 a 的字符编码是由参数 CHARACTER_SET_CLIENT 决定的,假设此时编码为 A,也就是变量 a 的编码。2. 写入语句在发送到 MySQL 服务端之前的编码由 CHARACTER_SET_CONNECTION 决定,假设此时编码为 B。3. 经过 MySQL 一系列词法,语…

mysql5.5编译安装脚本_mysql5.5 免编译安装及脚本启动报错深入

Mysql安装环境简介:最近在做MHA。已经安装完毕heartbeat和drbd,现在准备安装Mysql。Mysql安装目录:/opt/mysqlMysql数据目录:/data/mysql备注:/data目录实际是drbd需要同步到备节点的磁盘分区[rootmysql1 src]# df -hF…

mysql 主键索引如何创建_SQL创建索引、主键

-- MySQL中四种方式给字段添加索引1)# 添加主键# ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);# -- // 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。#添加唯一索引 -- UNIQUE 后面不用跟INDEX# ALTER TABLE tbl_name ADD UNIQU…

mysql查询20-30的数据_20. mysql查询表的数据大小

在需要备份数据库里面的数据时,我们需要知道数据库占用了多少磁盘大小,可以通过一些sql语句查询到整个数据库的容量,也可以单独查看表所占容量。1、要查询表所占的容量,就是把表的数据和索引加起来就可以了select sum(DATA_LENGTH…

requests由于系统缓冲区空间不足_系统C盘满了空间不足的扩容?

今天带来的是无需重新分区,无需删除逻辑分区的C盘容量扩大方法不重新或删除分区这就意味着无需重新安装软件、游戏等程序,也不用备份重要资料等操作,不影响电脑其它盘。统C盘满了是十分常见的问题,由于起初对C盘分区分的太小了&am…

mysql登陆三小时平均值图片_Mysql每小时平均值,间隔从半小时开始

我有一个mysql数据库,其中包含5分钟箱中的数据 . 我想从半小时开始创建每小时平均数据 . 通过使用mysql内置组:select date,AVG(AE) from mytable group by date(date),HOUR(date);会计算从01:00到02:00的平均值 . 相反,我希望从00:30到01:30…

mysql ip to int_ip网段转换程序(把ip地址转换成相对就的整数)

mysql教程_connect(localhost,root,root);mysql_select_db(dfd);$array file("ip.txt");foreach( $array as $k ){list ($ip,$s) explode(/,$k);$ipe str_replace(.0,.255,$ip);$ipint iptoint($ip);$ipinte iptoint($ipe);//echo iptoint($ip) .-.iptoint($ip…

postgre管理员 无法访问表_postgresql – 授予用户对所有表的访问权限

首先,您必须能够连接到数据库才能运行查询.这可以通过以下方式实现REVOKE CONNECT ON DATABASE your_database FROM PUBLIC;GRANT CONNECTON DATABASE database_nameTO user_name;REVOKE是必要的becauseThe key word PUBLIC indicates that the privileges are to be granted t…

mysql查询去年本月的数据_MySQL查询本周、上周、本月、上个月份数据的sql代码...

MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周、上周、本月、上个月份的数据,如果您对MySQL查询方面感兴趣的话,不妨一看..查询当前这周的数据SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittim…

python xlwings api_2021-01-13python,xlwings,api运用,及一些问题

import xlwings as xwimport re#启动APP,visible:是否可见,addbook:是否新增工作簿appxw.App(visibleFalse,add_bookFalse)#APP是否可见app.display_alertsFalse#是否刷新APP屏幕app.screen_updatingFalse#文件路径filepathrC:\Users\*******…

python3+requests+unittest_python3+requests+unittest:接口自动化测试(一)

简单介绍框架的实现逻辑,参考代码的git地址:1.环境准备python3 pycharm编辑器2.框架目录展示(该套代码只是简单入门,有兴趣的可以不断后期完善)(1)run.py主运行文件,运行之后可以生成相应的测试报告,并以邮件形式发送…

python用筛选法求解小于n的所有素数_用筛选法求解n以内的所有素数

用筛选法求解n以内的所有素数:筛选法的思想是一个数是素数则这个数的所有的倍数都是合数,我们不去找素数而去找合数,剩下的就是素数了。一个合数其最大的质因子不会超过其开发数,所以只要迭代到其最大数的开方数即可 一个简单的筛素数的过程&…

mysql类似于excel的删除重复项_Excel去除重复项的三种常用技巧

在工作中,经常会有需要在对原始记录清单进行整理时,剔除其中一些重复项。所谓的重复项,通常是指某些记录在各个字段中都有相同的内容(纵向称为字段,横向称为记录),例如下面图中的第三行数据记录和第五行数据记录就是完…

cas java单点登录_java单点登录系统CAS的简单使用

http://blog.csdn.net/yunye114105/article/details/7997041参考:http://blog.csdn.net/diyagea/article/details/50638737(配置SSL协议)http://www.cnblogs.com/notDog/p/5264666.html背景有几个相对独立的java的web应用系统, 各自有自己的登陆验证功能…

md5 java 工具类_Java实现一个MD5工具类

I. MD5工具类利用JDK封装一个简易的MD5工具类,逻辑比较简单,直接贴下具体实现public static String getMD5(String content) {String result "";try {MessageDigest md MessageDigest.getInstance("md5");md.update(content.getBy…

java class private_Java class 中public、protected 、friendly、private的区别

转载自:http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33cJava class 中public、protected 、friendly、private的区别1.类(class)可见性修饰符: public—在所有类中可见,在其他包中可以用import导入。缺省—就是没有修饰符&#xff…

java getparameter 乱码_request.getParameter(“参数名”) 中文乱码解决方法

今天浏览项目时候,遇到一个问题,页面用${requestScope.参数名 }获取的值是乱码,然后搜了一下,最后说是编码的问题,附上查找的结果:在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中&a…