CodeGym /Java 课程 /Python SELF ZH /高级参数处理

高级参数处理

Python SELF ZH
第 6 级 , 课程 5
可用

11.1 无限数量的参数

在 Python 中,函数可以设计成接收无限数量的参数。通过使用 *args 来传递普通参数,**kwargs 来传递命名参数。

使用 *args

*args 允许函数接收任意数量的位置参数,函数会将它们视为元组。使用示例:


def print_all(*args):
    for item in args:
        print(item)
        
print_all(1, 'apple', True)  # 打印出 1, apple 和 True.
        

变量 args 将包含传入函数的所有参数组成的元组。

使用 **kwargs

**kwargs 类似 *args,但针对的是命名参数,这些参数以字典形式出现。这使得函数可以接收任何数量的命名参数:


def print_named_items(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
        
print_named_items(fruit='apple', number=1)  # 打印出 fruit: apple 和 number: 1
        

这些机制使函数在不确定参数数量时变得极其灵活和有用,比如开发 API 或事件处理函数时。

我们会在稍后更详细地探讨这两种情况,但你应该知道,在 Python 中,可以很容易地在函数内部访问所有传入的参数。而且你可以把任何你想要的东西传递给函数。

11.2 指定类型

如你所知,Python 中的变量没有预先指定的类型。你可以为任何变量赋予任何类型的值,并在下一行赋予一个新类型的值,等等。

对于小程序来说,这非常方便,但对于大项目来说就不太方便了。当程序非常大,函数成千上万时,程序员无法记住需要以何种顺序传递哪些数据给函数。

在静态类型语言中,IDE 会提示程序员在调用函数时需要传递哪些类型的参数。但 Python 是动态类型语言,因此这些提示是不存在的。

因此,Python 的创造者想出了 type hinting。这就像变量的类型,但它们更像是建议而不是类型。指定的类型没有任何限制。

类型提示在 Python 3.5 中被引入,并因 PEP 484 标准而流行。这是一个允许程序员定义期望的变量类型、参数和函数返回值的机制。

尽管 Python 仍然是动态类型语言,类型提示增加了清晰度并支持静态类型检查。类型提示示例:


def add_numbers(a: int, b: int) -> int:
    return a + b
        

变量的类型通过冒号指定,函数返回结果的类型通过箭头指定。

类型提示的优点:

  • 提高文档质量:显式的类型提示使代码自解释。
  • 更好的自动补全:代码编辑器可以使用类型信息来改进自动补全功能。
  • 调试帮助:静态类型检查可以在程序执行之前识别潜在的错误。

处理类型的工具

Python 本身并不对变量的声明类型作出反应。而是有一个名为 mypy 的工具——一个流行的静态类型分析器,帮助发现使用类型提示的代码中的错误。

1
Опрос
Python 中的函数,  6 уровень,  5 лекция
недоступен
Python 中的函数
Python 中的函数
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION