当前位置: 首页 > news >正文

python函数调用的四种方式

第一种:参数按顺序从第一个参数往后排#标准调用

def normal_invoke(x, y):print("--normal_invoke:--" )print("x is %d" %x )print("y is %d" %y)
# 标准调用
normal_invoke(1, 2)

运行结果:

--normal_invoke:--
x is 1
y is 2

第二种:#关键字调用 

def keyword_invoke(x, y):print ("--keyword_invoke--:"  )print ("x is %d" % x  )print ("y is %d" % y )#关键字调用
keyword_invoke(y=1, x=2)
注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的:keyword_invoke(y=1, 2),这样就会报错。

运行结果:

--keyword_invoke--:
x is 2
y is 1

第三种:#非关键字可变长参数(tuple) def normal_tuple_invoke(x, y=2, *values):  

def normal_tuple_invoke(x, y=2, *values):print ("--normal_tuple_invoke--"  )print ("x is %d" % x)print ("y is %d" % y )for value in values:print("tuple's value has", value)#非关键字可变长参数(tuple)
normal_tuple_invoke(1, 3, 'xyz', 123.4)

注意:收集参数  ‘*’当你参数不确定有多少是你可是使用它,他会把不确定的部分存在values元组中,当然这个元组名字要看‘*’后面跟的是啥了。

运行结果:

--normal_tuple_invoke--
x is 1
y is 3
tuple's value has xyz
tuple's value has 123.4

第四种:关键字可变长参数

def keyword_dict_invoke(x, y=2, **value_dict):print ("--keyword_dict_invoke--" )print ("x is %d" % x  )print ("y is %d" % y  )for key in value_dict:print ("key is ", key  )print ("value is ", value_dict[key] )#关键字可变长参数(dict)
keyword_dict_invoke(y=1, x=2, arg2='def', arg1='put at the last')

运行结果:

--keyword_dict_invoke--
x is 2
y is 1
key is  arg2
value is  def
key is  arg1
value is  put at the last

第五中:还有一种是以整个函数为参数传回来,目前我知道是装饰器在使用

装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足:

  1. 不能修改被装饰的函数的源代码
  2. 不能修改被装饰的函数的调用方式
  3. 满足1、2的情况下给程序增添功能

那么根据需求,同时满足了这三点原则,这才是我们的目的。因为,下面我们从解决这三点原则入手来理解装饰器。

等等,我要在需求之前先说装饰器的原则组成:

< 函数+实参高阶函数+返回值高阶函数+嵌套函数+语法糖 = 装饰器 >

这个式子是贯穿装饰器的灵魂所在

def test():time.sleep(2)print("test is running!")def deco(func):start = time.time()func() #2stop = time.time()print(stop-start)deco(test) #1

运行结果:

test is running!
2.009514808654785

相关文章:

python函数调用的四种方式

第一种&#xff1a;参数按顺序从第一个参数往后排#标准调用 def normal_invoke(x, y):print("--normal_invoke:--" )print("x is %d" %x )print("y is %d" %y) # 标准调用 normal_invoke(1, 2) 运行结果&#xff1a; --normal_invoke:-- x is 1 …...

如何将两个pdf合并成一个?pdf合并技巧分享

在日常工作过程当中&#xff0c;我们经常需要处理一些文件&#xff0c;而文件的处理往往是琐碎的&#xff0c;想要提高工作效率&#xff0c;需要选择一些合适的方法&#xff0c;并掌握一定的技巧&#xff0c;那么&#xff0c;如何将两个pdf合并成一个?pdf合并技巧有哪些呢?接…...

qt : day 3

1.完成登录框的按钮操作&#xff0c;并在登录成功后进行界面跳转 ------------------------------------------------------------------ .pro ------------------------------------------------------------------ QT core gui texttospeech greaterThan(QT_MAJOR_V…...

flutter高德地图大头针

1、效果图 2、pub get #地图定位 amap_flutter_map: ^3.0.0 amap_flutter_location: ^3.0.0 3、上代码 import dart:async; import dart:io;import package:amap_flutter_location/amap_flutter_location.dart; import package:amap_flutter_location/amap_location_option…...

【线性代数】矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)

矩阵求导的本质与分子布局、分母布局的本质&#xff08;矩阵求导——本质篇&#xff09; 说在前面一. 函数与标量、向量、矩阵二. 矩阵求导的本质三. 矩阵求导结果的布局四. 分子布局、分母布局的本质五. 向量变元的实值标量函数 说在前面 我将严谨地说明矩阵求导的本质与分子布…...

快速了解状态管理库Pinia及其使用方法

目录 1.pinia是什么 2.为什么要使用pinia 3.pinia的优点 4.pinia在项目中使用 ①创建一个使用pinia的Vue3项目 ②在页面使用store 1.pinia是什么 Pinia 起源于一次探索 Vuex 下一个迭代的实验&#xff0c;如果你学过Vue2&#xff0c;那么你一定使用过Vuex。Vuex在Vue2中主…...

scratch绘制同心圆 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch绘制同心圆 一、题目要求 1、准备工作 2、功能实现 二、案例分析 <...

【LeetCode】3. 无重复字符的最长子串

3. 无重复字符的最长子串&#xff08;中等&#xff09; 方法&#xff1a;滑动窗口 哈希表 思路 这道题主要用到思路是&#xff1a;滑动窗口 什么是滑动窗口&#xff1f; 其实就是一个队列,比如例题中的 abcabcbb&#xff0c;进入这个队列&#xff08;窗口&#xff09;为 ab…...

苹果macOS 14开发者预览版Beta 7发布 新增超过100款视频壁纸和屏保

8 月 31 日&#xff0c;苹果向 Mac 电脑用户推送了 macOS 14 开发者预览版 Beta 7 更新&#xff08;内部版本号&#xff1a;23A5337a&#xff09;&#xff0c;本次更新距离上次发布隔了 8 天。 苹果发布 Beta 7 更新的同时&#xff0c;还发布了第 6 个公测版&#xff0c;正式版…...

Redis 7 第五讲 事务、管道、发布订阅 过渡篇

事务 理论 可以一次执行多个命令&#xff0c;本质是一组命令的集合。一个事务中的所有命令都会序列化&#xff0c;按顺序地串行化执行而不会被其它命令插入&#xff0c;不许加塞 一个队列中&#xff0c;一次性、顺序性、排他性的执行一系列命令 Redis事务 VS 关系型数据库事务…...

[SpringBoot3]视图技术Thymeleaf

七、视图技术Thymeleaf Thymeleaf是一个表现层的模板引擎&#xff0c;一般被使用在Web环境中&#xff0c;它可以处理HTML、XML、JS等文档&#xff0c;简单来说&#xff0c;它可以将JSP作为Java Web应用的表现层&#xff0c;有能力展示与处理数据。这样&#xff0c;同一个模板文…...

wangluobiancheng

UDP send: receive: TCP...

大数据之hadoop入门

大数据概念 大数据&#xff1a;无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现李和流程优化能力的海量、高增长率和多样化的信息资产。 大的概念是相对来说的&#xff1a;目前来说&#xff0…...

浅谈多人游戏原理和简单实现。

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;websocket、网络、原理、多人游戏☀️每日 一言&#xff1a;这世上有两种东西无法直视&#xff0c;一是太阳&#xff0c;二是人心&#xff01; 一、我的游戏史 我最开始接触游戏要从一盘300游戏…...

活动预告 | 龙智、紫龙游戏与JFrog专家将出席龙智DevSecOps研讨会,探讨企业大规模开发创新

2023年9月8日&#xff08;周五&#xff09;下午13:30-19:45&#xff0c;龙智即将携手Atlassian与JFrog在上海共同举办主题为“大规模开发创新&#xff1a;如何提升企业级开发效率与质量”的线下研讨会。 在此次研讨会上&#xff0c;龙智高级咨询顾问、Atlassian认证专家叶燕秀…...

米每秒和千米每小时的换算

千米每时和米每秒怎么换算?1米/秒3600米/3600秒 米每秒和千米每小时的换算(米每秒和千米每小时的换算) 3.6千米/小时。 3.6千米/小时1米/秒米每秒和千米每小时的换算1 米/秒(米每秒)3.6 千米/时(千米每小时)。 1米每秒3600米每时3.6千米每时。因为1小时3600秒。小时是一个时…...

js实现图形验证码

图形验证码起什么作用&#xff1a; 可以防止&#xff1a;恶意破解密码、刷票、论坛灌水&#xff0c;有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。 验证码一般是防止批量注册的&#xff0c;人眼看起来都费劲&#xff0c;何况是机器。不少…...

一句话画出动漫效果

链接&#xff1a; AI Comic Factory - a Hugging Face Space by jbilcke-hfDiscover amazing ML apps made by the communityhttps://huggingface.co/spaces/jbilcke-hf/ai-comic-factory 选择类型&#xff1a; Japanese 输入提示词&#xff1a; beauty and school love st…...

【openGauss2.1.0 TPC-C数据导入】

openGauss2.1.0 TPC-C数据导入 一、下载tpch测试数据二、导入测试数据 一、下载tpch测试数据 使用普通用户如omm登录服务器执行如下命令下载测试数据库&#xff1a;git clone https://gitee.com/xzp-blog/tpch-kit.git二、导入测试数据 进入dbgen目录下&#xff0c;生成makef…...

vue+elementui表格导出

htmlToExcel.js import FileSaver from file-saver import XLSX from xlsxconst htmlToExcel {getExcel(dom, title 默认标题) {var excelTitle titlevar wb XLSX.utils.table_to_book(document.querySelector(dom))/* 获取二进制字符串作为输出 */var wbout XLSX.write(w…...

告别付费IP!手把手教你用ZCU102 PS端DP接口点亮显示器(附参数调试心得)

解锁ZCU102 PS端DisplayPort潜力&#xff1a;零成本实现高效显示输出的实战指南 在嵌入式视觉系统开发中&#xff0c;显示输出往往是项目落地的最后一道关卡。当我在多个Zynq UltraScale MPSoC项目中反复遭遇HDMI IP核的授权困扰和PL端实现的复杂性后&#xff0c;意外发现PS端集…...

Pixel Couplet Gen 生成效果对比分析:不同参数下的对联质量评估

Pixel Couplet Gen 生成效果对比分析&#xff1a;不同参数下的对联质量评估 1. 引言&#xff1a;当AI遇上传统对联 春节贴对联是中国延续千年的文化传统&#xff0c;但创作一副既工整又有新意的对联并非易事。Pixel Couplet Gen作为一款AI对联生成工具&#xff0c;通过调整Te…...

ReplaceItems.jsx:基于智能匹配引擎的Illustrator对象替换解决方案

ReplaceItems.jsx&#xff1a;基于智能匹配引擎的Illustrator对象替换解决方案 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 副标题&#xff1a;面向专业设计师的批量元素管理工具…...

抖音音乐高效解决方案:douyin-downloader批量下载与智能管理指南

抖音音乐高效解决方案&#xff1a;douyin-downloader批量下载与智能管理指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...

MyBatis批量更新避坑指南:从`<foreach>`拼接SQL到`allowMultiQueries`配置的完整流程

MyBatis批量更新实战&#xff1a;从基础实现到性能调优全解析 批量更新操作是后端开发中绕不开的高频需求&#xff0c;但很多开发者在初次接触MyBatis批量更新时&#xff0c;往往会陷入各种"坑"中。本文将带你系统掌握两种主流实现方案&#xff0c;从基础用法到性能优…...

短视频创作新利器:Sonic数字人工作流生成口型自然的表情包视频

短视频创作新利器&#xff1a;Sonic数字人工作流生成口型自然的表情包视频 1. 数字人视频创作新趋势 在短视频内容爆炸式增长的今天&#xff0c;创作者们面临着一个共同挑战&#xff1a;如何高效产出高质量视频内容。传统视频制作需要专业设备、复杂后期和大量时间投入&#…...

软考高项“上岸”指南:三位宝藏老师,专治你的备考焦虑

备战软考高项&#xff0c;尤其是面对2026年可能更加灵活的考情&#xff0c;选择一位对的引路人至关重要。今天&#xff0c;就为大家深度介绍软考老金团队的三位王牌导师——尹老师、金老师、秦老师。他们风格互补&#xff0c;却有着共同的目标&#xff1a;陪你稳稳上岸。尹老师…...

手把手教你用Flotherm做热管仿真

&#x1f393;作者简介&#xff1a;科技自媒体优质创作者 &#x1f310;个人主页&#xff1a;莱歌数字-CSDN博客 &#x1f48c;公众号&#xff1a;莱歌数字&#xff08;B站同名&#xff09; &#x1f4f1;个人微信&#xff1a;yanshanYH 211、985硕士&#xff0c;从业16年 从…...

57:L构建紫队协同:蓝队的协同防御

作者&#xff1a; HOS(安全风信子) 日期&#xff1a; 2026-03-07 主要来源平台&#xff1a; GitHub 摘要&#xff1a; 传统的红队和蓝队分离模式存在沟通障碍&#xff0c;导致防御效率低下。L构建了一套紫队协同系统&#xff0c;通过AI驱动的团队协作、知识共享和防御优化&…...

Ostrakon-VL扫描终端效果展示:同一张图的商品识别+空缺定位双输出

Ostrakon-VL扫描终端效果展示&#xff1a;同一张图的商品识别空缺定位双输出 1. 像素特工&#xff1a;零售场景的AI扫描专家 想象一下&#xff0c;你走进一家便利店&#xff0c;货架上琳琅满目的商品中&#xff0c;有些位置空空如也。传统的人工巡检需要店员逐一检查&#xf…...