Skip to main content

Command Palette

Search for a command to run...

Python 函数的传参

Published
1 min read
Python 函数的传参

函数的传参

必传参数

  • 函数中定义的参数没有默认值,在调用函数时如果不传入则报错
  • 在定义函数的时候,参数后边没有等号与默认值
  • 错误:def add (a=1, b=1) x
    • 在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数,且顺序与参数顺序相同,就是必传参数

默认参数(非必传参数)

  • 在定义函数的时候,定义的参数含有默认值,通过赋值语句给他设一个默认的值
  • 如果默认参数在调用函数的时候给予了新的值,函数将优先使用后传入的值进行工作

不确定参数-可变参数

  • 没有固定的参数名和数量(不知道要传的参数名具体是什么)
  • *args 代表 :将无参数的值合并成元组
  • **kwargs 代表将有参数与默认值的赋值语句合并成字典

参数规则

  • 参数的定义从左到右依次是

    1. 必传参数

    2. 默认参数

    3. 可变元组参数 ?

      • # 如果赋值的形式传参,则需要将可变的元组类型放在第一位
    4. 可变字典参数

  • 函数的参数传递非常灵活
  • 必传参数默认参数的传参多样化
  • 函数体内不可*

代码

# 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)
2 views

More from this blog

MySQL | 表的内连接

数据操作语言:表连接查询(一) 从多张表中提取数据 从多张表提取数据,必须指定关联的条件。如果不定义关联条件就会出现无条件连接,两张表的数据会交叉连接,产生 笛卡尔积。 规定了连接条件的表连接语句,就不会出现笛卡尔积。 # 查询每名员工的部门信息 SELECT e.empno,e.ename,d.dname FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno; 表连接的分类 表连接分为两种:内连接 和 外连接 内连接是结果集中只保留符合...

May 16, 20221 min read13
MySQL | 表的内连接

MySQL | 分组查询的应用

数据操作语言:分组查询 为什么要分组? 默认情况下汇总函数是对全表范围内的数据做统计 GROUP BY 子句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对每个小区域分别进行数据汇总处理 SELECT deptno,AVG(sal) FROM t_emp GROUP BY deptno; SELECT deptno,ROUND(AVG(sal)) FROM t_emp GROUP BY deptno; -- ROUND 取整 逐级分组 数据库支持多列分组条件,执行的时候...

Apr 27, 20221 min read10
MySQL | 分组查询的应用

MySQL | 聚合函数的使用

数据操作语言:聚合函数 什么是聚合函数 聚合函数在数据的查询分析中,应用十分广泛。聚合函数可以对 数据求和、求 最大值 和 最小值 、求 平均值 等等。 求公司员工的评价月收入是多少? SELECT AVG(sal+IFNULL(comm,0)) FROM t_emp; SELECT AVG(sal+IFNULL(comm,0)) AS avg FROM t_emp; SUM 函数 SUM 函数用于求和,只能用户数字类型,字符类型的统计结果为 0 ,日期类型统计结果是毫秒数相加 SE...

Apr 26, 20221 min read8
MySQL | 聚合函数的使用
U

Untitled Publication

173 posts