标签:rgba 聚合 逗号 margin key keyword rgs strong 例子
一、函数结构
1.函数:函数以功能为导向,用代码实现特定的功能,这样能够有效减少代码的重复性,同时增强代码的可读性(通过名字就可以直观的看出代码的功能)。
自定义函数结构:def 函数名():
函数体
其中def是定义英文单词的缩写,是必须要有的,函数名可以自定义,函数体就是实现功能的代码,需要注意的是,函数体需要缩进,体现函数的隶属关系。
2.函数的调用:函数的调用就是指函数名加括号的时候,这是函数才真正的实现功能。
3.函数的返回值:函数是要实现一定功能的,这里就需要函数有一个结果,就是返回值,返回值用return表示,在函数中遇到return直接终止函数,将结果返回给函数的执行者,多个返回值用逗号隔开。
def songs(): print(‘风月‘) print(‘思念是一种病‘) print(‘小宇‘) print(‘人啊‘) return ‘风月‘,‘人啊‘
二、函数的参数
举例来说,函数想要实现一个加法的功能,就需要函数的调用者输入加数与被加数,这就是函数的参数,参数的作用就是盘活函数,函数可以从两个角划分,一是形参,一是实参。
形参就是在定义函数的时候就确定的参数,实参是执行时需要写的参数,就是执行的时候输入的参数。
1.实参传参
a、位置参数:参数与输入的参数顺序一一对应。
def introduce(name ,age): print(‘my name is ‘+name, ‘i am ‘+age) introduce(‘qidian‘,18) # 这样输入的内容和name,age一一对应,就是位置参数
b、关键字参数
上面的例子中输入的名字和年龄的顺序必须一一对应,否则年龄与姓名的顺序就会颠倒,而关键字参数是在输入的时候就指定参数名称,例如name=‘qidian‘,age=18,这样在输入的时候就不需要设定顺序。
c、混合参数
就是位置参数与关键字参数一起使用,需要注意的是关键字参数一定要在位置参数的后面。
def date(sex, age, hobby): print(‘奇点‘) date(‘男‘,hobby=‘唱歌‘,age=‘18‘,)
2.形参传参
a、位置参数:与实参传参一致。
b、默认参数:形式上与关键字参数一致,如果在执行的时候不修改,就会使用默认参数,修改就会使用新的参数。
c、动态参数:也叫动态参数。
# 动态参数分为两种:*args和**kwargs. # ?动态接收位置参数:*args # 如果参数很多,用多个参数接收很麻烦(或者你也不知道究竟需要设置多少个参数),那么就可以使用动态参数*args def eat(*args): print(‘我请你吃:‘,args) eat(‘蒸羊羔儿‘,‘蒸熊掌‘,‘蒸鹿尾儿‘,‘烧花鸭‘,‘烧雏鸡‘,‘烧子鹅‘) # 我请你吃: (‘蒸羊羔儿‘, ‘蒸熊掌‘, ‘蒸鹿尾儿‘, ‘烧花鸭‘, ‘烧雏鸡‘, ‘烧子鹅‘) ?# args无实际意义,只是约定俗成使用它,*在这里是聚合的作用,能够将所有传入的参数聚合成为一个元组,然后以元组的形式赋值给args。 ?# 动态接收关键字参数: **kwargs # 与*args的使用一致,只不过**kwargs接受所有的关键字参数,然后形成一个字典,将这个字典赋值给kwargs。 def func(**kwargs): print(kwargs) # {‘name‘: ‘奇点‘, ‘sex‘: ‘男‘} func(name=‘奇点‘,sex=‘男‘)
d、仅限关键字参数:形式上是位参,但是传参的时候只能使用关键字传参的方式,这里后面会详细说明。
3.形参的顺序:位置参数、*args、默认参数、仅限关键字参数、**kwargs
首先大顺序上时位置参数、然后是关键字参数,位置参数里面前面的参数与位置参数一一对应,多余的位置参数由*args表示,如果在*args还需要一个位置参数表示,那么就出现了仅限关键字参数,最后放**kwargs将所有的关键字参数收进去。
def func(a,b,*args,c): print(a,b) # 1 2 print(args) # (3, 4) print(c) func(1, 2, 3, 4, c=5) # 如果不写c=5,5的这个位置变量会被*args收进去
4.*和**的作用
聚合
? * args可以接受多个实参,并且返回一个元组,**kwargs也是将多个关键字参数转化成一个字典返回,所以在函数的定义时 *起到的是聚合的作用。
? 打散
?函数执行时,将位置参数的实参(可迭代类型)前面加上**,相当于将这些实参给拆成一个一个元素当成位置参数,然后传给args,这时候是打散的作用。所以在函数的执行时,**起到的是打散的作用。
? *除了在函数中可以这样打散,聚合外,函数外还可以灵活的运用:
a,*b = (1, 2, 3, 4,)
print(a, b) # 1 [2, 3, 4] # 注意形式是列表
*rest,a,b = range(5)
print(rest, a, b) # [0, 1, 2] 3 4
print([1, 2, *[3, 4, 5]]) # [1, 2, 3, 4, 5]
标签:rgba 聚合 逗号 margin key keyword rgs strong 例子
原文地址:https://www.cnblogs.com/superpoint/p/14300756.html