-
2022-03-23 21:24:56
def test(data): return data if __name__ == '__main__': # 不带括号调用的结果:<function test at 0x0000000004DD0B38>,a是整个函数体,是一个函数对象,不须等该函数执行完成 a = test print a # 带括号调用的结果:10 ,b是函数执行后返回的值10,须等该函数执行完成的结果 b = test(10) print b
1. 不带括号时,调用的是这个函数==本身 ==,是整个函数体,是一个函数对象,不需要等该函数执行完成。
2. 带括号时,调用的是函数的执行结果,须等该函数执行完成的结果。
3. 总结:python调用定时函数时切记不要调用加括号的函数。这是我当初踩的一个大坑,就很难受
更多相关内容 -
python函数调用的四种方式
2020-11-20 22:03:56原标题:python函数调用的四种方式第一种:参数按顺序从第一个参数往后排#标准调用 运行结果: 第二种:#关键字调用 注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的:...原标题:python函数调用的四种方式
第一种:参数按顺序从第一个参数往后排#标准调用
运行结果:
第二种:#关键字调用
注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的:keyword_invoke(y=1, 2),这样就会报错。
运行结果:
第三种:#非关键字可变长参数(tuple) def normal_tuple_invoke(x, y=2, *values):
注意:收集参数 ‘’当你参数不确定有多少是你可是使用它,他会把不确定的部分存在values元组中,当然这个元组名字要看‘’后面跟的是啥了。
运行结果:
第四种:#关键字可变长参数(dict)
注意:**value_dict 传回来的参数以字典:key-value的形式存放,单招顺序首先传回来的是:key,其次是:value。
运行结果:
第五中:还有一种是以整个函数为参数传回来,目前我知道是装饰器在使用
装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足:
不能修改被装饰的函数的源代码
不能修改被装饰的函数的调用方式
满足1、2的情况下给程序增添功能
那么根据需求,同时满足了这三点原则,这才是我们的目的。因为,下面我们从解决这三点原则入手来理解装饰器。
等等,我要在需求之前先说装饰器的原则组成:
< 函数+实参高阶函数+返回值高阶函数+嵌套函数+语法糖 = 装饰器 >
这个式子是贯穿装饰器的灵魂所在!
我们来看一下这段代码,在#1处,我们把test当作实参传递给形参func,即func=test。注意,这里传递的是地址,也就是此时func也指向了之前test所定义的那个函数体,可以说在deco()内部,func就是test。在#2处,把函数名后面加上括号,就是对函数的调用(执行它)。因此,这段代码运行结果是:
责任编辑:
-
python函数调用另外的一个函数
2020-08-20 17:49:141、使用场景:一个发送短信的函数,一个登陆的函数,登陆前需要调用发送短信 def send_message(ip): """1、发送短信""" url = "http://" + ip + ".123.com/api/sms/send" print(url) params = { "mobile": ...1、使用场景:一个发送短信的函数,一个登陆的函数,登陆函数需要调用发送短信
def send_message(ip): """1、发送短信""" url = "http://" + ip + ".123.com/api/sms/send" print(url) params = { "mobile": "188****", "type": "1"} headers = {'content-type': 'application/json'} ret = requests.post(url, data=json.dumps(params), headers=headers) ret_json = json.loads(ret.text) def login(ip="exp", account="188***"): """2、点击登陆""" send_message(ip) time.sleep(3) url = "http://" + ip + ".123.com/api/user/login" print(url) # url_login = "http://dev.123.com/api/user/login" params = { "account": account, "code": "123456"} headers = {'content-type': 'application/json'} ret = requests.post(url, data=json.dumps(params), headers=headers)
解决方法:在login函数中直接写send_message(ip)就是调用了 发送短信的函数
2、函数中默认参数
如果是在发送短信的send_message(ip)函数中加了默认参数,注意调用send_message()时的区别
(1)send_message()不写ip,使用默认值
(2)send_message()写ip,接收传参
(3)send_message()写ip固定值,使用固定值,不接收传参
-
Python函数必须先定义,后调用说明(函数调用函数例外)
2020-12-17 13:32:221、python函数的应用一般需要:先定义、后调用: 2、如果函数定义在调用之后,执行将报错: 3、函数中调用函数不受此限制: 4、但是语句对函数调用,必须在函数调用之后,包括直接调用的函数调用的其他函数也必须... -
(实例解析)Python 函数调用的几种方式(类里面,类之间,类外面)
2021-09-16 08:51:44第一种 是在class内部,方法之间的互相调用 举一个简单的例子 class cat(): def __init__(self,age): cat.age = age def show_color(self): print("The color of the cat is white") def show_age(self): ...第一种 是在class内部,方法之间的互相调用
举一个简单的例子
class cat(): def __init__(self,age): cat.age = age def show_color(self): print("The color of the cat is white") def show_age(self): self.show_color() print("The age of the cat is "+str(self.age)) Ragdoll = cat(2) Ragdoll.show_age()
结果为
这里我只用实例Ragdoll调用了show_age方法,但因为在show_age中调用了show_color方法,所以两个方法最后都执行了类里面的方法想调用另外一个方法,需要在方法体中用self.方法名的方式来调用
同样,类里面的方法想调用类的属性,需要用self.属性名的方式
第二种 是在类的外面,def函数之间的彼此调用
还是来看一个简单的例子
def show_num(num): print(num) def test(num): if num>3: show_num(num) test(4)
结果为
在类外面的函数之间,只需要函数名就可以调用彼此另外要记得参数列表保持一致,如果你要调用的函数参数列表中有多个参数,那么自身这个函数的参数列表中也要有那些参数
以下是错误示范
def create_cat(color,age): print("The age and color of the cat are"+str(age)+color) def show_cat(): create_cat(color,age) show_cat()
结果是
正确的函数调用是这样def create_cat(color,age): print("The age and color of the cat are "+str(age)+" and "+color) def show_cat(color,age): create_cat(color,age) show_cat("white",3)
结果是
第三种 是在类外面的函数,调用在类里面的方法
class cat(): def __init__(self,age): self.age = age def age_increase(self): self.age += 1 print("the age of the cat is "+str(self.age)) def year(): Ragdoll = cat(3) Ragdoll.age_increase() year()
结果为
创建该类的实例对象,再通过实例调用方法,最后运行函数即可class cat(): def __init__(self,age): self.age = age self.color = "white" def age_increase(self): self.age += 1 print("the age of the cat is "+str(self.age)) def year(): Ragdoll = cat(3) Ragdoll.age_increase() print(Ragdoll.color) year()
在函数中直接用实例调用属性,获取属性值也是可以的
结果为
第四种 是不同的类之间的方法的彼此调用
class cat(): def __init__(self,age1): self.age1 = age1 def show_age(self): print("the age of the cat is "+str(self.age1)) class dog(): def __init__(self,age2): self.age2 = age2 def show_cat_age(self): Ragdoll = cat(3) Ragdoll.show_age() Husky = dog(2) Husky.show_cat_age()
结果为
而如果想在这个类里面调用其他类里面的属性值,则需要这样做class cat(): def __init__(self,age1): self.age1 = age1 self.color = "white" def show_age(self): print("the age of the cat is "+str(self.age1)) class dog(): def __init__(self,age2,Ragdoll): self.age2 = age2 self.Ragdoll = Ragdoll def show_cat_age(self,Ragdoll): Ragdoll = cat(3) Ragdoll.show_age() print(self.Ragdoll.color) if self.Ragdoll.age1 > self.age2: print("the cat is older than the dog") def run(): Ragdoll = cat(3) Husky = dog(2,Ragdoll) Husky.show_cat_age(Ragdoll) run()
结果为
需要将对象作为参数放入类里面
-
python函数调用中全局变量与局部变量的分析与理解
2018-10-28 11:49:40此内容来自于沙行勉的《计算机科学导论-以python为舟》函数调用的基本概念:程序语言中的函数与高中数学中的函数相似。高中函数,假设要实现z+x*y²这个计算。对于乘法计算,定义一个函数f(x,y)=x*y²,他有两个参数... -
python函数调用的五种方式
2021-05-17 14:12:15第一种:参数按顺序从第一个参数往后排#标准调用 # -*- coding: UTF-8 -*- def normal_invoke(x, y): print "--normal_invoke:--" print "x is %d" %x print "y is %d" %y #标准调用 normal_invoke(1, 2) ... -
类中的python函数调用
2021-01-11 21:17:17通过阅读您的评论,您的实际问题似乎是:您有一个方法可以打印一些输出。如果用户调用代码,那么您...在另一种方法是在函数调用期间创建一个函数包装器来重定向stdout,然后再恢复它。像这样:import osimport sysd... -
Python 函数调用的时候参数的传递方式是值传递还是引用传递?
2019-06-17 22:27:49函数的传值到底是值传递还是引用传递,要分情况: 不可变参数用值传递: 像整数和字符串这样的不可变对象,是通过拷贝进行传递的,因为你无论如何都不可能在原处改变 不可变对象 可变参数是引用传递的: 比如像... -
python怎样调用函数
2020-11-23 11:24:16在Python中,调用函数可分为调用内建函数和调用自定义函数。调用自定义函数时,先要定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句... -
Python如何在main中调用函数内的函数方式
2020-09-16 19:19:51主要介绍了Python如何在main中调用函数内的函数方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
python函数怎么调用自身?
2020-12-28 20:35:40针对这个Python函数问题,我从以下几点回答:1. Python函数定义——defPython有很多已经定义好了的内置函数和模块,如果是自定义函数,则要像下面这样:定义一个函数要使用关键字def,后面是函数名,括号,括号内是... -
如何调用python函数
2021-03-05 22:37:08有什么作用、定义函数的方法及如何调用函数。函数function是什么?函数的作用函数是可以实现一些特定功能的小方法或是小程序。在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数。... -
如何查看Python函数调用图 Ubuntu
2017-12-07 14:49:42说明:有时候想看看Python的函数调用图,此时 pycallgraph 就显示出他的用途了。 安装 pycallgraph pip install pycallgraph 安装 graphviz,使用dot -v 验证安装,记得将 /usr/bin/ 设置到 PATH路径 ... -
python怎么调用自己的函数
2020-12-05 13:50:40在python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r'自定义的模块路径')实例如下:1、在E:\pycharm新建hello.py实现基础功能函数... -
python函数调用返回两个或多个变量
2018-03-10 10:22:45如果返回列表,其实质是返回列表引用,列表引用本可以找到数据本身,但由于回收机制,数据本身很可能已经被回收了,所以用列表返回并不可行===========update==========python中用列表也可以。。。... -
如何在 Python 中调用函数?九种方法任你挑选
2021-11-28 15:02:531.直接函数调用 这是最简单、最直观的方式: def test(): print("This is a test") test() 2.使用partial()函数 在 的内置库中functools,有一个专用于生成偏函数的偏函数partial。 def power(x, n): s = 1 ... -
python函数里调用外部变量
2021-08-13 19:18:21python函数里调用外部变量 1、可以直接使用 2、但不能直接修改,除非函数里global变量 —1 a=1 def f(): print(a) f() 结果: 1 —2 a=1 def f(): a=a+1 print(a) f() 错误 —3 a=1 def f(): global a a=... -
python函数之间变量的调用
2021-12-20 15:19:401.实现一个函数fun1()和函数fun2()之间变量的调用,通常使用返回值的方法,在调用的时候,会将调用的函数整体运行一遍。 def fun1(x,y): print("This is fun1") test = x + y return test def fun2(): test2 = ... -
Python函数几种调用方式总结
2019-09-20 21:18:59python装饰器(fuctional decorators)就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能。 这个函数的特殊之处在于它的返回值也是一个函数,这个函数是内嵌“原... -
python函数调用
2018-06-22 04:18:38python函数要先定义,然后才能调用,也就是说在python代码中要先将函数定义,然后才能是主程序。 -
python函数调用关系图(python call graph)
2019-09-26 09:55:14由于要重构项目的部分代码,要整理好主要的函数调用关系,不想自己看代码慢慢画出结构,想找出一种通用的,节省人力的方法得出函数间的调用关系图,于是发现以下几个工具。(内网没装好graphviz,还没真正用上) ... -
导出python源码的函数调用关系图的方法
2022-04-12 21:31:24介绍了6种导出python源码的函数调用关系图的方法 -
Python实现调用另一个路径下py文件中的函数方法总结
2020-09-20 09:55:22主要介绍了Python实现调用另一个路径下py文件中的函数方法,结合实例形式总结分析了Python针对不同文件夹中py文件调用操作的处理技巧与相关注意事项,需要的朋友可以参考下 -
python中函数调用中的“未定义”参数
2021-02-11 03:24:52每当我用Tkinter在python中编程时,代码如下所示:from Tkinter import *class GUI():def __init__(self, master):self.master = master # master is an instance of Tkself.master.title("") # set the name of the... -
python中函数调用
2021-11-16 17:01:31和C++一样,Python中函数的定义必须在调用的前面, 但是在函数的内部调用一个函数,不用考虑函数的顺序,只要被调用的函数被定义了即可 1.先定义后,后调用为一般方法: def add_test(a,b): return a+b reslut ... -
python基础--函数的调用
2021-09-26 18:42:571.我们先来讲讲函数的定义和调用,看看他的格式。 2.那我们的函数一般都是怎么传参的呢,我们来看看一个简单的案例。 3.定义时小括号中的参数,用来接收参数用的,称为 “形参”,调用时小括号中的参数,用来传递给... -
在python中调用函数时出错“函数未定义”
2020-11-20 23:17:45我面临这个错误,我的函数被说成是没有定义的尽管我已经正确定义并调用函数,这是我得到的错误,请帮助:在python中调用函数时出错“函数未定义”文件“split_text.py”,行80,在 split_pun(字)#passing词的价值... -
python函数声明和调用定义及原理详解
2020-03-17 20:59:45这篇文章主要介绍了python函数声明和调用定义及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数是指代码片段,可以重复调用,比如我们前面文章...