Python:函数与面向对象编程总结

函数

函数的定义

函数就是对实现某一特定功能的代码的封装。

在Python中可以使用def关键字来定义函数,函数的命名规则跟变量的命名规则是一致的。

# 定义函数:def是定义函数的关键字、fac是函数名,num是参数(自变量)
def fac(num):
    """求阶乘"""
    result = 1
    for n in range(1, num + 1):
        result *= n
    # 返回num的阶乘(因变量)
    return result

函数的参数

  • 位置参数:传入参数的时候对号入座即可;也可以通过参数名=参数值的方式传入函数所需的参数,因为指定了参数名,传入参数的顺序可以进行调整。
  • 命名关键字参数:在函数的参数列表中,写在*之后的参数,传参时,只能以参数名=参数值的方式传参。
  • 关键字参数:Python中可以通过*kwargs表达式语法传入0个或任意多个参数名=参数值形式的参数,关键字参数会将传入的带参数名的参数组装成一个字典,参数名就是字典中键值对的键,而参数值就是字典中键值对的值。
  • 可变参数:可以实现向一个函数中传0个或任意多个参数,Python中可以通过*args表达式语法来支持可变参数。(不能接收带参数名的参数

注意:不带参数名的参数(位置参数)必须出现在带参数名的参数(关键字参数)之前

def add(*args, **kwargs):
    """加法"""
    total = 0
    for arg in args:
        if type(arg) in (int, float):
            total += arg
    for value in kwargs.values():
        if type(value) in (int, float):
            total += value
    return total
# 传入0个参数
print(add())
# 只传入可变参数
print(add(1, 2, 3))
# 只传入关键字参数
print(add(a=1, b=2, c=3))
# 传入位置参数和关键字参数,关键字参数在*args的‘*’之后,因此也是命名关键字参数
print(add(1, 2, c=3, d=4))

用模块管理函数

Python中每个文件就代表了一个模块(module),在不同模块可以有同名的函数,在使用函数时,通过import关键字导入指定的模块,再使用完全限定名的调用方式就可以区分是哪个模块中的函数。

高阶函数

函数的参数和返回值可以是任意类型的对象,这就意味着函数本身也可以作为函数的参数或返回值,这就是所谓的高阶函数

# 中间两个参数是命名关键字参数,必须带上参数名
def calculate(*args, init_value, op, **kwargs):
    """可以做任意二元运算的函数

    :param init_value:初始值
    :param op: 一个实现二元运算(+、*)的函数
    :param args: 位置参数
    :param kwargs: 关键字参数
    :return: 运算结果
    """
    total = init_value
    for arg in args:
        if type(arg) in (int, float):
            total = op(total, arg)
    for value in kwargs.values():
        if type(value) in (int, float):
            total = op(total, value)
    return total


def add(a, b):
    return a + b


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

better meˇ:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值