python一点通:参数列表里面有星号 * 什么意思?

2023-12-16 07:42:37

在Python类或函数参数列表中,我们有时会看到星号*,它是什么意思呢?

什么是仅限关键字参数?

Python 3中引入的仅限关键字参数是指必须通过其名称来指定的函数或方法参数。它们避免了由于存在多个参数而引起的混淆,增强了代码的可读性,减少了错误的可能性。

语法和用法

仅限关键字参数的语法涉及在函数或方法的参数列表中放置一个星号*。星号之后的参数被视为仅限关键字参数。让我们在Python类方法的上下文中看看这个:

class DocumentRetriever:
    def _get_relevant_documents(self, query: str, *, run_manager):
        # 实现部分
        pass

在上面的例子中,DocumentRetriever类的_get_relevant_documents方法有两个参数:query和run_manager。星号*在run_manager之前表明它是一个仅限关键字参数。

为什么使用仅限关键字参数?

  • 清晰度:仅限关键字参数要求调用者明确指定参数的名称,使代码更具可读性和清晰度。这在具有多个参数的方法中特别有益。

  • 避免错误:它们有助于防止调用者混淆参数顺序时可能发生的错误。

  • API设计的灵活性:它们允许更容易地更改方法签名,例如添加新参数而不用担心其位置。

调用带有仅限关键字参数的方法

要调用带有仅限关键字参数的方法,你只需指定关键字:

retriever = DocumentRetriever()
retriever._get_relevant_documents("某个查询", run_manager=some_manager)

在这个调用中,必须明确命名run_manager。这在函数或方法有多个参数时特别有用,减少了按错误顺序传递参数的风险。

阅读

英文

AI好书推荐

AI日新月异,再不学来不及了。但是万丈高楼拔地起,离不开良好的基础。您是否有兴趣了解人工智能的原理和实践? 不要再观望! 我们关于 AI 原则和实践的书是任何想要深入了解 AI 世界的人的完美资源。 由该领域的领先专家撰写,这本综合指南涵盖了从机器学习的基础知识到构建智能系统的高级技术的所有内容。 无论您是初学者还是经验丰富的 AI 从业者,本书都能满足您的需求。 那为什么还要等呢?

人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典

北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理

文章来源:https://blog.csdn.net/robot_learner/article/details/134905771
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。