函数(一)

函数(一)

函数基础

把代码进行封装,组成一个通用的模板。输入参数,输出返回值。

函数的返回值

return

1、默认返回None

2、可以返回多个值

3、可以返回任何类型的值

4、return在返回值的同时,终止函数

函数对象

Python中一切皆对象

可以把函数赋值给变量

函数参数的应用

形参

位置形参
默认形参

特点:在定义阶段就已经被赋值,意味着在调用时可以不用为其赋值。

注意:

  1. 位置形参必须放在默认形参的左边。
  2. 默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定了。

实参

位置实参
关键字实参

特点:可以打破位置的限制,但仍能为指定的形参赋值。

注意:

  1. 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
  2. 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。

可变长参数

可变长实参

self_max(*a, **b)

作为实参时,a是一个列表或元组

def sum_cul(a, b, c, x, y, z):
    return a + b + c + x + y + z


test_list = [1, 2, 3]
test_tupple = (4, 5, 6)

print(sum_cul(*test_list, *test_tupple))
# 本来需要传入6个单独的实参,但我们用了一个列表,一个元组做了替换
# 本质还是属于位置实参的依次传入

b是字典,可以转成 key = value

def sum_cul(a, b, c, x, y, z):
    return a + b + c + x + y + z


test_dict = {'x': 4, 'y': 5, 'z': 6}
print(sum_cul(1, 2, 3, **test_dict))
# 本来需要传入6个单独的实参,后3个,我们用了一个字典做了替换
# 用字典添加实参,可以理解成关键字实参的方式。需要符合关键字实参的特点,比如在位置实参的右侧

可变长形参

def self_max(*args, **kwargs):
def test(*args, **kwargs):
    print(args)
    print(kwargs)


test(1, 2, 3, a='apple', b='boy')

# 输出结果
# (1, 2, 3)
# {'a': 'apple', 'b': 'boy'}

# *args表示可以传入任意数量的参数,传入后组合成元组,可以使用for循环遍历
# **kwargs表示可以传入任意数量的相当于字典的参数,也可以使用for循环遍历

原文地址:https://www.cnblogs.com/heroknot/p/10946273.html