函数初等回顾

函数的返回值

1.遇到return,函数结束,return下面的(函数内)的代码不会执行。
2.return 会给函数的执行者返回值。
  如果return后面什么都不写,或者函数中没有return,则返回的结果是None
  如果return后面写了一个值,返回给调用者这个值
  如果return后面写了多个结果,,返回给调用者一个tuple(元组),调用者可以直接使用元组的解构获取多个变量。

def date():
    return '漂亮的妹子','小萝莉', '成熟女性'
g1,g2,g3 = date()
girl=date()
print(g1, g2, g3)  # 漂亮的妹子 小萝莉 成熟女性
print(girl)  # ('漂亮的妹子','小萝莉', '成熟女性')

(来源好男孩课程,求别喷)

函数传参

  1. 实参角度
  • 位置参数
    位置参数就是从左至右,实参与形参一一对应。
  • 关键字参数 
    python提出了一种叫做关键字参数. 我们不需要记住每个参数的位置. 只要记住每个参数的名字就可以了
  • 混合参数
    可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数.但是位置参数必须在关键字参数前面
def date(sex, age, hobby):
    print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
date('人妖','20~25','萝莉音')
date(hobby='唱歌',sex='女',age='25~30',)
date('女',hobby='唱歌',age='25~30',)
  1. 形参角度
  • 位置参数
  • 默认值参数
    即函数有默认值
  • 万能参数
    指针使用,*来聚合
def eat(*args):
print('我请你吃:',args)
eat('蒸羊羔儿','蒸熊掌','蒸鹿尾儿','烧花鸭','烧雏鸡','烧子鹅')
# 运行结果:
#我请你吃: ('蒸羊羔儿', '蒸熊掌', '蒸鹿尾儿', '烧花鸭', '烧雏鸡', '烧子鹅')

python中既然有args可以接受所有的位置参数那么肯定也有一种参数接受所有的关键字参数,那么这个就是kwargs , **kwargs约定俗成使用作为形参。举例说明:kwargs,是接受所有的关键字参数然后将其转换成一个字典赋值给kwargs这个形参。
所有形参的顺序为:位置参数,
args,默认参数,仅限关键字参数,**kwargs。

    • 的打散
      在函数调用的时候,用*或**可以将可见对象整合
def func(*args):
      print(args)
func(*[1,2,3],*[22,33])
func(*'sdfa',*'faffw')
#(1, 2, 3, 22, 33)
#('s', 'd', 'f', 'a', 'f', 'a', 'f', 'f', 'w')

def func(*args,**kwargs):
      print(args)
func({'name':'taobao'},{'age':18})
#({'name': 'taobao'}, {'age': 18})

def func(*args,**kwargs):
      print(kwargs)
func({'name':'taobao'},{'age':18})
# {}

def func(*args,**kwargs):
      print(args)
      print(kwargs)
func(**{'name':'taobao'},**{'age':18})
#()
#{'name': 'taobao', 'age': 18}
def func(*args,**kwargs):
      print(args)
      print(kwargs)
func(*{'name':'taobao'},*{'age':18})
#('name', 'age')
#{}
posted @ 2020-09-09 21:51  life_if_forever  阅读(90)  评论(0)    收藏  举报