`
standalone
  • 浏览: 611093 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python中使用可选参数和命名参数

阅读更多

Python 允许函数参数有缺省值;如果调用函数时不使用参数,参数将获得它的缺省值。此外,通过使用命名参数还可以以任意顺序指定参数。SQL Server Transact/SQL 中的存储过程也可以做到这些;如果你是脚本高手,你可以略过这部分。

info 函数就是这样一个例子,它有两个可选参数。


def info(object, spacing=10, collapse=1):

spacingcollapse 是可选参数,因为它们已经定义了缺省值。object 是必备参数,因为它没有指定缺省值。如果调用 info 时只指定一个参数,那么 spacing 缺省为 10collapse 缺省为 1。如果调用 info 时指定两个参数,collapse 依然默认为 1

假如你要指定 collapse 的值,但是又想要接受 spacing 的缺省值。在绝大部分语言中,你可能运气就不太好了,因为你需要使用三个参数来调用函数,这势必要重新指定 spacing 的值。但是在 Python 中,参数可以通过名称以任意顺序指定。

例 4.4. info 的有效调用

info(odbchelper)                    1
info(odbchelper, 12)                2
info(odbchelper, collapse=0)        3
info(spacing=15, object=odbchelper) 4
1 只使用一个参数,spacing 使用缺省值 10collapse 使用缺省值 1
2 使用两个参数,collapse 使用缺省值 1
3 这里你显式命名了 collapse 并指定了它的值。spacing 将依然使用它的缺省值 10
4 甚至必备参数 (例如 object,没有指定缺省值) 也可以采用命名参数的方式,而且命名参数可以以任意顺序出现。

这些看上去非常累,除非你意识到参数不过是一个字典。“通常” 不使用参数名称的函数调用只是一个简写的形式,Python 按照函数声明中定义的的参数顺序将参数值和参数名称匹配起来。大部分时间,你会使用“通常”方式调用函数,但是如果你需要,总是可以提供附加的灵活性。

注意
调用函数时唯一必须做的事情就是为每一个必备参数指定值 (以某种方式);以何种具体的方式和顺序都取决于你。
分享到:
评论

相关推荐

    Python如何定义有可选参数的元类

    综上所述,Python定义有可选参数的元类是通过在`__prepare__`、`__new__`和`__init__`方法中处理这些参数来实现的。这种方法使得我们可以更灵活地控制类的创建过程,根据需要配置元类的行为。通过使用关键字参数,...

    Python中几种参数得用法:默认参数,可变参数,关键字参数,命名关键字参数

    默认参数,注意一点:必选参数在前,默认参数在后,否则Python的解释器会报错 二。可变参数: 可变参数,意思就是传入参数的个数是可变的,可以是1个,2个,无数个;传入参数类型为list或者tuple;举例,给定一组...

    简单谈谈Python中函数的可变参数

    **kwargs在函数定义时是一个双星号,它会将所有传递的命名参数收集到一个字典中。例如: ```python def functionWithKeywords(**options): for key, value in options.items(): print(f"Key: {key}, Value: {...

    python 函数的使用-python基础,python函数的使用说明,有python2的参考代码

    总的来说,Python函数是通过`def`关键字定义的,包含一个可选的参数列表,并在其内部执行特定任务。理解函数、参数、形参和实参以及局部变量的概念对于编写可维护和可扩展的Python代码至关重要。通过熟练掌握这些...

    Python中django学习心得

    - **参数**: 可选,默认参数可以传递给视图函数。 - **别名**: 用于反向解析的唯一标识符。 #### 三、URL的反向解析 在Django中,反向解析是一种非常实用的功能,它可以让你通过URL的名字而不是具体的路径来引用...

    浅谈Python 参数与变量

    在这个例子中,`name`和`age`是必需的参数,而`*args`和`**kwargs`则是可选的。使用`*args`可以接收额外的位置参数,而`**kwargs`则可以接收额外的关键字参数。 当调用此函数时,可以明确地给出每个参数的名称,...

    详解Python的三种可变参数

    命名关键字参数是一种特殊的参数形式,它可以指定哪些关键字参数是必需的,哪些是可选的。这使得函数签名更加清晰,并且可以在不修改现有函数的情况下扩展新的功能。在定义时,使用星号 (*) 后跟参数名来声明命名...

    python函数的5种参数详解

    如果函数定义中已经有了一个可变参数,后面的命名参数就不需要一个特殊分隔符 `*` 了。 **总结:** 1. **必选参数**:函数调用时必须提供的参数。 2. **默认参数**:函数定义时提供了默认值的参数。 3. **可变参数...

    Python3.9.2.zipPython3.9.2.zip

    - 可选类型注解:类型注解的改进允许在函数定义中使用可选参数类型,增加了代码的可读性。 - `__match_args__`:这是一个新的特殊属性,用于控制匹配语句(match-case)的行为,提高了模式匹配的灵活性。 3. 错误...

    深入C# 4.0 新特性dynamic、可选参数、命名参数的详细介绍

    本文将深入探讨其中的三个关键特性:`dynamic`、可选参数和命名参数。 首先,`dynamic` 关键字允许在运行时执行绑定,而不是在编译时。在C# 4.0之前,C#是一种静态类型语言,但在引入`dynamic`后,开发者可以创建...

    argparse4j,python著名的argparse命令行参数解析器的java端口。.zip

    在上述示例中,我们定义了一个命令行工具,它接受一个必需的`input`参数,一个可选的`output`参数,并有一个`-v`或`--verbose`开关。如果用户没有提供`input`参数或提供了无效的参数,`argparse4j`将打印帮助信息并...

    python中函数传参详解

    本文将深入探讨Python中函数参数的使用方法,包括不同类型的参数:必选参数、默认参数、可变参数(*args)和关键字参数(**kwargs)。 首先,必选参数是最基础的参数类型,它们在函数定义时必须按照位置顺序提供,...

    Python开发编码规范

    - `else`和`finally`块可选,用于在`try`块成功执行或无论是否抛出异常后执行的代码。 8. **PEP8**: Python的官方编码风格指南是PEP 8,它是编写Python代码时应遵循的最佳实践。开发者应熟悉并遵循PEP 8,以保持...

    最新Python学习笔记2

    在参数组合方面,Python允许函数定义时将必选参数、默认参数、可变参数、命名关键字参数和关键字参数以特定顺序组合使用。 笔记还介绍了Python中的切片(slice)操作,这是一种简单的方式来取出列表(list)或元组...

    python(4).docx

    - Python支持多种参数传递方式,包括必需参数、可选参数、可变数量参数。可选参数必须位于非可选参数之后,可以按位置或按名称传递。选项A、B和C正确描述了参数传递,而选项D错误,因为在Python中,可变数量的参数...

    python-3.5.3-amd64

    例如,`ascii()`函数用于返回对象的ASCII表示,`exec()`函数现在接受一个可选的全局命名空间参数,以及`format()`函数的扩展,支持更多的格式化选项。 4. **生成器表达式改进**:Python 3.5引入了带星号的生成器...

    Python初学教程:《简明Python教程》

    - 形参可以是必需的或可选的。 - **局部变量**: - 在函数内部定义的变量。 - 仅在该函数内可见。 - **全局变量**: - 使用`global`关键字声明全局变量。 - 全局变量在整个程序中都可见。 - **默认参数值**...

Global site tag (gtag.js) - Google Analytics