首页 > 其他分享 >在*args, **kwargs上强制规定参数的调用约定

在*args, **kwargs上强制规定参数的调用约定

时间:2022-10-17 21:55:09浏览次数:42  
标签:__ 调用 name gender args kwargs Parameter

  首先我们要知道任何关于函数调用签名的问题,都和inspect模块有着关系

  这个知识点涉及到两个类:

              Signature、
              Parameter
创建一个签名对象,这是个重点
 1 from inspect import Signature, Parameter
 2 
 3 params = [Parameter("name", Parameter.POSITIONAL_OR_KEYWORD, default="g"),
 4           Parameter("gender", Parameter.POSITIONAL_OR_KEYWORD, default="man"),
 5           Parameter("age", Parameter.KEYWORD_ONLY, default=25)]
 6 
 7 sig = Signature(params)
 8 print(sig)
 9 
10 
11 def func(*args, **kwargs):
12     res = sig.bind(*args, **kwargs)
13     for name in res.arguments:
14         print(name, res.arguments[name])
15 
16 
17 if __name__ == '__main__':
18     # 测试调用
19     func('c', gender="m", age=18)

output: 

  (name='g', gender='man', *, age=25)
  name c
  gender m
  age 18

其实具体的应用,什么场景下用比较合适,我目前还不是很清楚,后面遇到希望能回来再接着完善,先记录下来

 

标签:__,调用,name,gender,args,kwargs,Parameter
From: https://www.cnblogs.com/shixiaogu/p/16800866.html

相关文章

  • Python函数(函数定义、函数调用)用法详解
    Python 中函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如input()、print()、range()、len()函数等等,这些都是Python的内置函数,可以直接使用。除了可以直接......
  • 二维数组作为形参的几种调用方法
    1、/将二维数组看做一维数组进行处理(在栈上进行处理)/voidfunc1(intarr,introw,intcol){inti=0,j=0;printf("子函数打印:\n");for(i=0;i<row;i++){......
  • 函数调用时的return返回值与throw抛出值
    return是如何将值返回给主调函数的我们知道,被调函数运行结束后才会返回主调函数,但是被调函数运行结束后系统为被调函数中的局部变量分配的内存空间就会被释放。也就是说,re......
  • HM-SCAli3【微服务调用实现及测试】
    1微服务调用订单微服务是服务消费者;商品微服务是服务提供者1.1完善商品查询相关代码packagecom.yppah.dao;importcom.yppah.domain.Product;importorg.spring......
  • js 外部调用 嵌套函数
     在函外部直接调用函数的内部函数是不可以的,因为是向外查找的 所以不能直接内部函数  functionone(){functiontwo(){varb=30;......
  • python 调用ansible脚本并输出回显
    在运维的过程中,我们经常遇到这样的场景,在我们的python运维平台中,经常会执行一些常用的运维命令操作,这时候我们想要实现ansible的可视化批量执行,所以,实现最简便的操作就是pyt......
  • 方法的多种调用方式
    方法调用确实我们每个人都会,但是我觉得大家可能用的最多的就是那种常规的方式,这里呢,我要记录一下另外几种方式1fromoperatorimportattrgetter2fromoperator......
  • Vue事件对象如何调用
    <script>exportdefault{ data(){  return{   message:0,   put1:'www.96net.com.cn',  } }, methods:{  dianji(e){   ......
  • Mysql 系列 | 性能优化 - 函数调用
    sql性能优化,是代码编写过程中必定要考虑的内容,弄懂性能背后的逻辑,起到事半功倍的效果。今天学习几种常见的简单优化场景。条件字段中调用函数以公司的打卡信息表为例,......
  • L04-02. 尾调用(尾递归)
    互相调用函数执行原理:这里介绍函数a调用函数b在栈中的变化: 函数调用会在内存形成一个"调用记录",保存调用位置和内部变量等信息。如果在函数A的内部调......