- 学习链接:https://dsw-dev.data.aliyun.com/
-
目录:
-
函数的定义
-
函数的调用
-
函数文档
-
函数的参数
-
-
学习内容:
- 函数的定义
- python中万物皆对象,python把函数也当作对象,可以从另一个函数中返回出来构建更高阶的函数,比如:参数是函数,返回值是函数
- 函数以 def 开头,后接 函数名称(参数):
def FunctionName(parameter1,parameter2,...): function_suite return [expression]
- 函数的调用
def printme(str): print(str) printme("我要调用用户自定义函数!") #我要调用用户自定义函数!
- 函数文档
def MyFirstFunction(name): "函数定义过程中name是形参" print("传递进来的{0}是实参,因为他具有具体的参数值".format(name)) MyFirstFunction("丁丁的程序人生") #传递进来的丁丁的程序人生是实参,因为他具有具体的参数值 print(MyFirstFunction.__doc__) #函数定义过程中name是形参 help(MyFirstFunction) #Help on function MyFirstFunction in module __main__: #MyFirstFunction(name) #函数定义过程中name是形参
- 函数的参数
- python的参数具有非常灵活多样的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。从简到繁的参数形态为:位置参数、默认参数、可变参数、关键字参数、命名关键字参数、参数组合
- 位置参数
def FunctionName(arg1): "函数——文档字符串" function suite return [expression]
arg1 - 位置参数,这些参数在调用函数时位置要固定
- 默认参数
def FunctionName(arg1,arg2=v): "函数——文档字符串" function suite return [expression]
arg2 - 默认参数=默认值,调用函数时,如果默认参数的值没有传入,则被认为是默认值。默认参数一定要放在位置参数后面,不然程序会报错。
def printinfo(name,age=8): print("Name:{0},Age:{1}".format(name,age)) printinfo('小明') #Name:小明,Age:8 printinfo('小明',10) #Name:小明,Age:10
python允许调用函数时参数位置与声明时不一致,因为python解释器能够用参数名匹配参数值
- 可变参数
- 顾名思义,可变参数就是传入的参数个数是可变的,可以是0,1,2到任意个,是不定长的参数
def FunctionName(arg1,arg2=v,*args): "函数-文档字符串" function suite return [expression]
-
*args - 可变参数,可以是从零个到任意个,自动组装成元组。
- 加了星号(*)的变量名会存放所有未命名的变量参数。
def printinfo(arg1,*args): print(arg1) for a in args: print(a) printinfo(10,20,30,40) #10 #20 #30 #40
- 顾名思义,可变参数就是传入的参数个数是可变的,可以是0,1,2到任意个,是不定长的参数
- 关键字参数
def FunctionName(arg1,arg2=v,*args,**kw): "函数-文档字符串" function suite return [expression]
**kw - 关键字参数,可以是从零个到任意个,自动组装成字典。
def printinfo(arg1, *args, **kwargs): print(arg1) print(args) print(kwargs) printinfo(70, 60, 50) # 70 # (60, 50) # {} printinfo(70, 60, 50, a=1, b=2) # 70 # (60, 50) # {'a': 1, 'b': 2}
★【可变参数】和【关键字参数】的区别:可变参数可以从零个到无数个,它们在函数调用时自动组装成为一个元组;关键字参数可以从零个到无数个,它们在函数内部自动组装为一个字典。
- 命名关键字参数
def FunctionName(arg1,arg2=v,args,*,nkw,**kwargs): "函数-文档字符串" function suite return [expression]
*,nkw - 命名关键字参数,用户想要输入的关键字参数,定义方式是在nkw前面加一个*分隔符;如果用户想要限制关键字参数的名字,就可以使用【命名关键字参数】;需要注意的是,使用命名关键字参数时,一定不要缺少参数名。
def printinfo(arg,*,nkw,**kwargs): print(arg) print(nkw) print(kwargs) printinfo(10,nkw=20,a=3) #10 #20 #{'a':3}
如果在调用函数的时候缺少命名关键字参数的参数名,python解释器会默认传入的是位置参数。
printinfo(10,20,a=3) #TypeError: printinfo() takes 1 positional argument but 2 were given
!命名关键字参数一定不要少了【*】分隔符,另外,命名关键字参数也可以赋予默认值。
- 参数组合
- 以上5种参数的组合方式有:【必须保证顺序】
- 位置参数、默认参数、可变参数、关键字参数
- 位置参数、默认参数、命名关键字参数、关键字参数
- 以上5种参数的组合方式有:【必须保证顺序】
- 位置参数
- python的参数具有非常灵活多样的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。从简到繁的参数形态为:位置参数、默认参数、可变参数、关键字参数、命名关键字参数、参数组合
- 函数的定义
python入门——函数的定义、调用、函数文档、参数
最新推荐文章于 2023-03-15 15:57:19 发布