前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 函数的传参

Python 函数的传参

作者头像
Zkeq
发布2022-05-18 14:10:20
1.2K0
发布2022-05-18 14:10:20
举报
文章被收录于专栏:Zkeq

函数的传参

必传参数
  • 函数中定义的参数没有默认值,在调用函数时如果不传入则报错
  • 在定义函数的时候,参数后边没有等号与默认值
  • 错误:def add (a=1, b=1) x
    • 在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数,且顺序与参数顺序相同,就是必传参数
默认参数(非必传参数)
  • 在定义函数的时候,定义的参数含有默认值,通过赋值语句给他设一个默认的值
  • 如果默认参数在调用函数的时候给予了新的值,函数将优先使用后传入的值进行工作
不确定参数-可变参数
  • 没有固定的参数名和数量(不知道要传的参数名具体是什么)
  • *args 代表 :将无参数的值合并成元组
  • **kwargs 代表将有参数与默认值的赋值语句合并成字典
参数规则
  • 参数的定义从左到右依次是
    1. 必传参数
    2. 默认参数
    3. 可变元组参数 ?
      • # 如果赋值的形式传参,则需要将可变的元组类型放在第一位
    4. 可变字典参数
  • 函数的参数传递非常灵活
  • 必传参数默认参数的传参多样化
  • 函数体内不可*
代码
代码语言:javascript
复制
# coding:utf-8

def add(a, b, c=3):
    return a + b + c


result = add(1, 2)
print(result)

result = add(1, 2, 6)
print(result)


def test_args(*args, **kwargs):
    print(args, type(args))
    print(kwargs, type(args))


test_args(1, 2, 3, 4, 5, 6, 7, 8, 9, name='dewei', age=33, top=174)


def test_args_supre(*args, **kwargs):
    if len(args) >= 1:
        print(args[0])

    if 'name' in kwargs:
        print(kwargs['name'])
    else:
        print('no name')
    print(args, len(args))
    print(kwargs, len(kwargs))


test_args_supre(1, name='dewei')
a = ('python', 'django')
b = {'name': 'dewei'}
test_args_supre(*a, **b)


def add(a, b=1):
    print(a + b)


add(1, 2)
add(1)
add(a=1, b=2)
add(b=2, a=1)  # 仅限于当前形式
# add(b=2)  # 会报错


def test(a, b=1, *args):
    print(a, b, args)


s = (1, 2)
test(1, 2, *s)
# test(a=1, b=2, *s)  # 如果赋值的形式传参,则需要将可变的元组类型放在第一位


def test2(*args, a, b=1):
    print(a, b, args)


test2(a=1,b=2, *s)


def test3(a, b=1, **kwargs):
    print(a, b, kwargs)


test3(1, 2, name='dewei')
test3(a=1, b=2, name='dewei')
test3(name='dewei', age=33, a=1, b=2)

d = {'name': '小慕'}
test3(a=1, b=2, **d)
test3(**d, a=1, b=2)
test3(**d, a=1, b=2)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数的传参
    • 必传参数
      • 默认参数(非必传参数)
        • 不确定参数-可变参数
          • 参数规则
            • 代码
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档