当前位置: 首页 > 面试题库 >

python:是否可以要求函数的参数全部为关键字?

常俊侠
2023-03-14
问题内容

为了避免出现明显的错误,我想防止在某些函数中使用位置参数。有什么办法可以实现?


问题答案:

只有Python 3可以正确执行此操作(并且您使用了python3标签,所以很好):

def function(*, x, y, z):
    print(x,y,z)

使用**kwargs将允许用户输入 任何 参数,除非您稍后进行检查。另外,它将自省隐藏真实的参数名称。

**kwargs 不是这个问题的答案。

测试程序:

>>> function(1,2,3)
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    function(1,2,3)
TypeError: function() takes exactly 0 positional arguments (3 given)
>>> function(x=1, y=2, z=3)
1 2 3


 类似资料:
  • 问题内容: 以python内置函数为例。 但是我如何将xs提高到2的幂? 要得到 我知道列表理解会更容易。 问题答案: 根据文档, 不能 这样做(强调我自己): __ 部分参数 在 最左边的 将被前置到位置参数位置参数 您总是可以“修复”以使用关键字args:

  • 本文向大家介绍python函数参数(必须参数、可变参数、关键字参数),包括了python函数参数(必须参数、可变参数、关键字参数)的使用技巧和注意事项,需要的朋友参考一下 ps:下面给大家介绍下python中函数、方法、关键字的区别 一、关键字 二、函 数   函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。可以自己定义一个函数。   --函数-封装了独立功能,可以直接调用   

  • 问题内容: 与在或中使用的方式类似: 问题答案: 是。 如果你不理会关键字参数,这很简单并且可以工作: 如你所见,Python将为你提供一个包含所有参数的元组。 对于关键字参数,你需要将其作为单独的实际参数接受,如的所示。

  • 问题内容: 在Python中,是否可以在运行时重新定义函数的默认参数? 我在这里定义了带有3个参数的函数: 接下来,我尝试(未成功)设置y的默认参数值,然后尝试调用不带参数的函数: 但是由于未正确设置默认值,所以产生了以下错误: 正如我在此尝试的那样,是否可以在运行时重新定义函数的默认参数? 问题答案: 只需使用functools.partial 这里的一个问题:您将无法调用它,因为您应该手动说

  • 问题内容: 在Python中,将 不是 Python标识符的关键字参数赋予函数是否安全?这是一个例子: 我之所以这样问,是因为使用包含破折号的名称对我来说更方便格式化(因为这些值对应于命令行参数中带破折号的名称)。但是这种行为是否可靠(即在不同的Python版本之间是否可以变化)? 我不确定是否正式支持使用非标识符作为关键字参数:实际上,文档内容如下: 如果语法** expression出现在函数

  • 问题内容: javascript中的函数通过保持与其隐藏范围的(隐藏)链接来形成关闭。 当我们拥有函数(作为变量值)时,是否可以通过编程方式访问它? 真正的目标是理论上的,但一个演示可能是列出闭合的属性。 问题答案: 这是关闭的目的之一(使信息保密)。由于该函数已经执行,因此它的作用域变量不再可从外部获得(并且从未使用过)-只有在其作用域中执行的函数(仍然)可以访问。 但是,您可以通过getter

  • 如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。 这样做有两个 优势 ——一,由于我们不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。 使用关键参数 例7.6 使用关键参数 #!/usr/bin

  • 在TypeScript中,我可以将函数的一个参数声明为类型函数。是否有一种“类型安全”的方式来完成这件事,而这是我所缺少的?例如,考虑以下内容: save回调不是类型安全的,我给它一个回调函数,其中函数的参数是一个字符串,但我传递给它一个数字,并且编译时没有错误。我可以在保存类型安全函数中设置结果参数吗? TL;DR版本:在TypeScript中是否存在与.NET委托等价物?