-
2020-08-30 15:02:07
1、函数的互相调用
函数调用是去执行函数内部的代码逻辑
python如何运行代码?
- python进入文件后从上到下读取顶格写的代码,所以函数定。义的先后顺序不影响调用
1、函数的定义可以不分顺序,但必须在调用之前定义
#函数的定义不分先后,但必须在调用之前定义好 def Fun1(): print(f"正在调用Fun1()") Fun2() def Fun2(): print(f"正在调用Fun2()") Fun1()
2、避免两个函数相互调用
#应避免两个函数互相调用,会陷入死循环 def A(): B() def B(): A()
3、尽量避免调用自己(递归)
尽量避免调用自己,调用自己的时候必须要有退出条件 def Fun(n): print(n) if n == 10: return Fun(n+1) Fun(0) #打印0到10
2、拆包
比如一个函数有两个形参,在调用的时候,将两个值存入一个元组中,然后将该元组传入,直接传入时,形参实参不匹配会报错,这是就可以给实参的元组前面加一个*来讲这个元组拆成两个值,这个方式就叫拆包
列表和元组拆包:拆成位置参数
字典拆包:拆成关键字参数在调用的时候把一个列表(元组)或者字典变量传入函数,在前面加上*,就可以变成多个值
列表和元组的拆包:
def add(a, b): print(a+b) return a+b #元组的拆包 tup = (1,3) add(*tup) #列表的拆包 lis = [1, 3] add(*lis) #字典的拆包 dic = {'a':1, 'b':3} add(**dic)
更多相关内容 -
两个函数相互调用防止死循环
2019-11-29 11:47:55最近碰到了一个问题,就是两个函数相互调用遭遇死循环的问题,想了半天终于想出了一个算法破解,姑且叫它熵递减算法。 问题的抽象代码如下 /* * methodA 和 methodB 循环调用,是死循环 * */ function methodA() { ...最近碰到了一个问题,就是两个函数相互调用遭遇死循环的问题,想了半天终于想出了一个算法破解,姑且叫它熵递减算法。
问题的抽象代码如下/* * methodA 和 methodB 循环调用,是死循环 * */ function methodA() { console.log('A的事情'); methodB(); } function methodB() { console.log('B的事情'); methodA(); }
不论调用哪个方法,都会产生死循环。
我想要的效果是:如果触发A方法时,也执行一下B方法,到此为止不再循环下去,反之亦然。因此,必须能判断方法是主动发起的,还是被动的。抽象代码如下:/* * 解决问题的关键在于,判断方法是主动发起的,还是被动的 * */ function methodA() { console.log('A的事情'); if('A是主动的'){ methodB(); }else{ // 不再调用下去 } } function methodB() { console.log('B的事情'); if('B是主动的'){ methodA(); }else{ // 不再调用下去 } }
解法,就是熵递减算法,如下
/* * 熵递减算法 * */ var pairMethodStep = 2; function methodA() { pairMethodStep --; console.log('A的事情'); if(pairMethodStep === 1){ methodB(); }else{ pairMethodStep = 2; } } function methodB() { pairMethodStep --; console.log('B的事情'); if(pairMethodStep === 1){ methodA(); }else{ pairMethodStep = 2; } }
熵递减算法的说明:给一个全局变量,叫做总步数pairMethodStep ,初始值为2。任一个方法执行时,做完自己的事情后,把pairMethodStep减成1。然后,判断此时的pairMethodStep,如果是1, 就调用另一个方法;如果是0了,就不再继续调用了,而是把pairMethodStep恢复成2。
我们分析一下代码执行的过程。主动的方法执行前,pairMethodStep的值是2,它做完自己的事后,把pairMethodStep的值变成了1,紧跟着就会执行被动的方法;被动的方法执行前,pairMethodStep的值是1,被动的方法做完自己的事情后,把pairMethodStep的值减成了0,不会再调用另一个方法了(不会发生死循环了),而仅仅是把pairMethodStep还原成2。
目的达到。熵递减算法,能完美地解决两个函数相互调用的问题。 -
解决同一页面中两个iframe互相调用jquery,js函数的方法
2020-11-29 01:19:36这一个月又没更新博客,唉,懒癌又犯了,今天解决了一个问题,关于两个iframe互相调用jquery函数方法 a.html中有两个iframe,如下: <iframe width="100%" height="100%" name="left" scrolling="auto" ... -
C 与 C++ 接口函数相互调用的实现
2020-12-20 20:00:16在该过程中,所有函数的名称都会被转换成一个符号作为汇编文件中的唯一标识,对 C 语言函数一般直接用函数名称作为其唯一标识的符号,而对于 C++ 函数在多数情况下需要在函数名称加上各种前缀或后缀才能作为其标识,... -
在Python 中同一个类两个函数间变量的调用方法
2020-09-19 15:31:10今天小编就为大家分享一篇在Python 中同一个类两个函数间变量的调用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
一个Js文件函数中调用另一个Js文件函数的方法演示
2020-10-19 09:37:14主要介绍了一个Js文件函数中调用另一个Js文件函数的方法,两个javascript文件中相互调用函数,主要是将引入的Js文件代码放在</body>下面。具体操作方法可查看下文,需要的朋友可以参考下 -
两个JS之间的函数互相调用
2018-10-09 11:20:59这个问题是我在工作中用到的一...首先要在html页面引入两个js文件1.html <!DOCTYPE html> <html lang="en"> <head> <meta cha...这个问题是我在工作中用到的一个方法 因为要做封装
所以想到能不能在一个js中引用另一个js中的function
这样的话能大大的减少代码量话不多说 先上代码
首先要在html页面引入两个js文件
1.html-
<!DOCTYPE html>
-
<html lang="en">
-
<head>
-
<meta charset="UTF-8">
-
<title> </title>
-
</head>
-
<script src="1.js"></script>
-
<script src="2.js"></script>
-
<body>
-
</body>
-
</html>
1.js
-
function a(){
-
alert(1);
-
}
2.js
a();
这样2.js就可以直接调用1.js中的a函数了
当然这样只是很简单的方法 下面写一个闭包中的方法(当然也很简单啦~~)
1.html-
<!DOCTYPE html>
-
<html lang="en">
-
<head>
-
<meta charset="UTF-8">
-
<title> </title>
-
</head>
-
<script src="1.js"></script>
-
<script src="2.js"></script>
-
<body>
-
</body>
-
</html>
1.js
-
var dianji;
-
(function(){
-
dianji = {
-
a:function(){
-
alert(1);
-
}
-
}
-
})()
这里的1.js是一个对象函数而且还是闭包的形式,所以我们要把dianji这个变量提升到全局。这样在2.js中才能调用这个a函数 不然回报变量未定义的错误。
想要js之间互相调用function,那么函数就必须是全局的
2.js
dianji.a();
--------------------- 本文来自 老虎的博客 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq493820798/article/details/81216090?utm_source=copy
-
-
C++ 保存在两个cpp文件中函数 怎样声明才能互相调用
2018-11-08 02:02:55C++ 保存在两个cpp文件中函数 怎样声明才能互相调用分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
主函数所在cpp:#include "menu_1.cpp"#include "menu_2.cpp"void main(){ char choice; do{ choice=_getch(); }while(choice!='0'&&choice!='1') switch(choice) case '0': menu_1(); case '1': menu_2();}menu_1()所在menu_1.cpp:void menu_1(){ //其他操作 char choice; do{ choice=_getch(); }while(choice!='0'&&choice!='1') switch(choice) case '0': exit(0); case '1': menu_2(); }menu_2()所在menu_2.cpp:void menu_2(){ //其他操作 char choice; do{ choice=_getch(); }while(choice!='0'&&choice!='1') switch(choice) case '0': exit(0); case '1': menu_1(); }由于作业需要,必须将menu_1和menu_2放在两个cpp文件中,但按我那样在主函数前声明的话,编译时会在menu_1.cpp中menu_2();那一行显示无法识别标识符menu_2(),哪位老虾帮帮忙,指点下该怎么声明?编辑环境是VisualStudio2008
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
-
【六】C & C++ 函数相互调用
2015-08-15 16:54:21在项目中融合C++和C代码是实际工程中不可避免的,虽然C++编译器能够兼容C语言的编译方式,但C++编译器会优先使用C++的方式进行编译,为了让它们能互相调用,可以利用extern关键字强制让C++编译器对代码进行C方式编译... -
对Python Class之间函数的调用关系详解
2020-12-25 00:34:48假设有Class A 和 Class B两个类,Class A中定义了a(),Class B中定义了b(). 现在我想在Class B中调用 Class A中的函数a()。此处介绍三种调用方法: 方法一: 在Class B中所定义的fuction()中声明Class A的对象a,... -
C函数与C++函数相互调用
2019-06-04 20:18:01C&C++——C函数与C++函数相互调用问题 https://www.cnblogs.com/sun-frederick/p/4772479.html C语言调用so动态库的两种方式 https://blog.csdn.net/shaosunrise/article/details/81161064 C语言与C++... -
对两个整数通过函数调用交换其值,然后输出
2019-12-02 21:14:08对两个整数通过函数调用交换其值,然后输出。首先定义一个函数,3个值交换。在主函数函数声明(可省略),调用函数,输入要交换的两个值 -
C++ 包含类两个类互相调用彼此的类成员变量和方法
2017-09-13 16:16:04C++,C 包含类两个类互相调用彼此的类成员变量和方法,里面介绍了如何在头文件中创建相互的类对象,简单易懂 -
两个python文件互相调用函数报错问题
2020-09-29 09:49:13一句话:不要在顶部import,在使用时再import。 -
React 函数相互调用
2021-11-05 08:33:33如图,将mytest绑定到一个按钮上会发现点击没有效果 是因为在定义整个class的constructor里面没有声明这两个函数 如上图声明即可 -
C语言函数的递归和调用实例分析
2020-09-05 03:21:09一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层 -
python类中函数相互调用
2022-02-07 03:41:58python类中函数相互调用,self的使用方法啊 -
python函数间相互调用案例
2019-08-31 20:45:22‘’‘案例一: 登录淘宝账号,并且将商品加入到购物车中(两个函数间的调用)’’’ islogin = False #用于判断用户是否登录的变量 默认是没有登录 #定义加入购物车函数 def add_shoppingcar(goodsname): if islogin ... -
python函数之间的调用
2021-07-25 22:19:52三、一个引用失败的错误(python调用不了另一个py文件) 当想引用文件A中的函数时,通常要写from A ,但是这样会报错,就是没有引用成功。很可能是你的文件A命名不正确。 比如A-test就不可以,文件名不可以 -
Vue在一个函数中调用另外一个函数
2020-12-19 13:38:11仿QQ迷你首页(VC&...MFC)(迷你资讯)的开发与实现(源代码)由于需求,需要写个类似QQ迷你资讯首页的东西,就花了一点时间写了写,软件效果截图如下: 程序的主要核心代码如下: 程序的全部源代码下载地址:... -
两个python文件相互调用里面的函数
2019-05-14 14:40:38两个python文件,a.py,b.py a中有b的函数,b中有a的函数 都是通过import导的函数 在python2下会报import Error 把函数写在一个文件里,只从一个文件...有谁有办法解决两个python文件不能相互调用里面的函数? ... -
两个函数可以相互调用吗? main函数能被自己调用吗?main函数能被别的普通函数调用吗?
2015-05-26 22:39:14今天突然想到这个问题:两个函数可以相互调用吗? main函数能被自己调用吗?main函数能被别的普通函数调用吗? 现在写代码来玩一下啊: #include #include void fun2(); void fun1() { printf("fun1\n"); ... -
STM32实现跨bin文件调用函数(Firmware)
2021-01-20 11:18:06一、技术背景 以前我用过一款庆科的WiFi模组——EMW3162,它由一块STM32F205RG芯片 + SDIO接口的射频芯片组成,有趣的是官方将这颗STM32芯片内部Flash做了很多块的划分,如下图所示。 EMW316x FLASH分配情况 ... -
两个js文件之间的函数调用
2019-12-11 13:46:15这个问题是今天在工作中遇到的,需要在每个页面都是用这个函数,需要做函数的封装,在进行单独的调用,所以想到能不能在一个js中引用另一个js中的function 这样的话能大大的减少代码量 需要用到的两个文件 <!...
-
flash与js互相调用自制的,两个简单实例实现Flash与JS的相互调用与传值,仅实现基本功能,可在此原理基础上对函数进行
-
ActionScript与JavaScript相互调用重点讨论了在ActionScript与JavaScript中相互调用并控制。
-
c++和lua互相调用实例及讲解Lua是一个很好用的脚本语言,在游戏开发中可以和c++完美结合,我总结的几点使用以及环境配置和大
-
MFC与duilib之间控件相互调用.rarMFC与duilib之间控件相互调用MFC与duilib之间控件相互调用MFC与duilib之间控件
-
dostats:计算统计辅助函数做统计R包 介绍 dostats R 包是用于计算统计数据和在 R 上作为语言进行操作的辅助实用程序