【Python】关于函数

1.调用时

当有重名的时候,使用最后声明的同名函数

解决函数命名冲突问题:

~ 模块名.函数名 ----> 使用函数的完全限定名

~ 别名 ----> 在导入函数的时候,使用as关键字对其别名

2.参数

(1)函数的参数的说明:

~ / 前面的参数叫做"强制位置参数"(positional-only arguments),调用函数传递参数时只能对号入座不能写参数名

~ * 前面的参数叫做"位置参数"(positional arguments),调用函数传递参数时可以对号入座也可以带上参数名

~ * 后面的参数叫做"关键字参数"(keyword arguments),调用函数传递参数时必须写成"参数名=参数值"的形式

~ 注意:关键字参数绝不能出现在位置参数之前!!!

python 复制代码
def is_triangle(a, b, c, /) -> bool:
    """判断三条边能否构成三角形"""
    return a + b > c and b + c > a and a + c > b

def perimeter(*, a, b, c) -> float:
    """计算周长"""
    return a + b + c
(2)可变参数

在设计函数时,如果函数接收的参数(自变量)的个数不能确定,我们可以使用可变参数和关键字参数来接收它们,如下所示:

python 复制代码
def foo(*args, **kwargs):
    pass

*args - arguments - 把所有的位置参数打包成一个元组

**kwargs - keyword arguments - 把所有的关键字参数打包成一个字典

3.赋值给变量

函数可以直接赋值给变量

python 复制代码
px = sorted
print(px(words))

把函数作为另一个函数的参数

根据字符串的长度对元组中的字符串进行排序

python 复制代码
print(px(words, key=len,))

sorted函数的key参数的值是另一个函数,这个函数会重新定义比较大小的规则

注意:把函数作为函数的参数传递时,只写函数名,不能写圆括号调用函数

相关推荐
数据智能老司机1 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机2 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机2 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机2 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i2 小时前
drf初步梳理
python·django
每日AI新事件2 小时前
python的异步函数
python
这里有鱼汤3 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook12 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室13 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三14 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试