Python函数参数及实施
发布时间:2021-12-05 11:37:30 所属栏目:教程 来源:互联网
导读:每个编程语言中(诸如:Java、C++、C)等都有函数的,Python也不例外。 函数的主要作用有哪些呢? 1、将程序的功能进行模块化,功能模块清晰 2、减少重复代码的工作量 3、便于阅读及维护、调试等 一、函数的结束及返回值 # -*- coding: utf-8 -*- def f1():
每个编程语言中(诸如:Java、C++、C)等都有函数的,Python也不例外。 函数的主要作用有哪些呢? 1、将程序的功能进行模块化,功能模块清晰 2、减少重复代码的工作量 3、便于阅读及维护、调试等 一、函数的结束及返回值 # -*- coding: utf-8 -*- def f1(): print("This is Fun()") return #函数调用结束 print("-- End 1--") print(" Print 2") return "--- End 2 --" f1() print(type(f1())) 运行结果: This is Fun() This is Fun() <class 'NoneType'> Python函数参数及使用 1.函数在遇到return语句时,此时函数调用已经结束 2.函数是有返回值的,只不过这里是None类型 再看下面的例子: def mth_return(): return 1,"String",["a","b"],{"K1":1,"Key2":2} print(mth_return()) print(type(mth_return())) 运行结果: (1, 'String', ['a', 'b'], {'K1': 1, 'Key2': 2}) <class 'tuple'> Python函数参数及使用 此时,函数的返回值是一个元组 二、函数的参数 对于函数,其函数名后面的变量通常称为:形参,调用函数时,提供的值称为:实参 # -*- coding: utf-8 -*- def method(name,age): #name,age是形参 print(name,age) def method2(name,age ="18"): #提供默认参数值 print(name,age) n = "Mr.James" method(n,38) #n是实参 method2("Zhang") method2("Mr.Zhang",28) 运行结果: Mr.James 38 Zhang 18 Mr.Zhang 28 Python函数参数及使用 三、函数的关键字参数 对于上面的例子,其函数是位置位置参数,位置一一对应,不能多也不能少 下面的这个这个例子跟上面的有点不一样,在Python中称之为:关键字参数 # -*- coding: utf-8 -*- def test(name="James",age=29): print("name:{},{}".format(name,age)) test(age=20,name="Mr.Zhang") 运行结果: name:Mr.Zhang,20 Python函数参数及使用 四、函数的可变长参数 对于位置参数而言,形参及实参需要一一对应,若有时不确定需要哪些参数或为了日后能很好的扩展,Python中提供了可变长参数 用法:def function(self,*args,**kwargs) 具体例子: 例子1: # coding = utf-8 def test(name,*args): print(name) print(args) print(args[3]) test("Mr.Zhang",1,2,3,["a","b"],{"Key1":1,"Key2":2}) # *args 返回的是一个元组 运行结果: Mr.Zhang (1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2}) ['a', 'b'] Python函数参数及使用 例子2: # coding = utf-8 def test2(name,*args,**kwargs): # **kwargs返回的是一个字典 print(name) print(args) print(kwargs) test2("Mr.Zhang",1,2,3,['a','b'],{"Key1":1,"Key2":2},age=18,sex="F") 运行结果: Mr.Zhang (1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2}) {'age': 18, 'sex': 'F'} Python函数参数及使用 函数的嵌套 在Python编程语言中,在函数体内创建另外一个函数(对象,因为Python一切皆对象,函数其实也是对象)是完全合法的,这种函数叫做内部/嵌套函数。 例子: # coding : utf-8 def outer(): def inner(): print("is Inner Method") print("Is outer Method") inner() #调用outer函数 outer() #调用outer()的内部函数,报错 # inner() 运行结果: Is outer Method is Inner Method inner() #调用inner()时,出现如下错误 NameError: name 'inner' is not defined Python函数参数及使用 函数的闭包 何为闭包? 如果在一个内部函数里,对在外部作用域(不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure) 说的明了一点就是:在内部函数中,引用了外部函数的自由变量 闭包的作用: 保存函数的状体信息,使函数的局部变量信息可以保存下来,对于安装计算、隐藏状态是很有用的 在GUI或者在很多API支持回调函数的事件驱动编程中也有很用处 闭包有两种调用方式: 在内部直接调用 返回函数名称 e.g 1.在内部直接调用 # -*- coding: utf-8 -*- def outer(name): def inner(name): # name = "Mr.Zhang" #这里的name值会覆盖调用outer函数实参的值,这是涉及变量在函数作用域的范围 print("sub method :%s" %name) # 使用__closuer__内置属性来判断是否是一个闭包,返回地址,则是,返回None,则不是闭包函数 print(inner.__closure__) inner(name) #在内部直接调用 outer("GuiDo") 运行结果: sub method :GuiDo (<cell at 0x000001D2792EF7C8: function object at 0x000001D2793687B8>,) Python函数参数及使用 e.g 2.返回函数名称 # -*- coding: utf-8 -*- def sumer(num = 0): count = [num] def add(): count[0] += 1 return count[0] return add f = sumer(3) print(f()) print(f()) print(f()) 运行结果: 7 8 9 ![]() (编辑:泉州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |