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

星号(*)作为python函数的自变量[重复]

萧浩漫
2023-03-14
问题内容

这个问题已经在这里有了答案

仅关键字参数 (1个答案)

os.removexattr的Python文档-“
*”(星号)参数是什么意思?
(1个答案)

1年前关闭。

我在看glob函数的定义时,发现第二个参数很简单*

def glob(pathname, *, recursive=False):
    """Return a list of paths matching a pathname pattern.
    [...]
    """
    return list(iglob(pathname, recursive=recursive))

有什么意义*呢?


问题答案:

*指示的位置参数的结尾。此后的每个参数只能由关键字指定。这在PEP
3102中
定义

>>> def foo1(a, b=None):
...     print(a, b)
...
>>> def foo2(a, *, b=None):
...     print(a, b)
...
>>> foo1(1, 2)
1 2
>>> foo2(1, 2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: foo1() takes 1 positional argument but 2 were given
>>> foo2(1, b=2)
1 2


 类似资料:
  • 问题内容: 函数参数中的星号有什么作用? 当我查看pickle模块时,我看到了: 我知道在参数之前(对于可变数量的参数)之前的单星号和双星号,但是在此之前没有。而且我很确定这与泡菜无关。那可能只是这种情况的一个例子。我将其发送给翻译人员时才知道它的名字: 如果重要的话,我使用的是python 3.3.0。 问题答案: 用于强制调用方使用命名参数-因此,如果没有以下关键字参数,则无法将函数定义为参数

  • 问题内容: 我正在使用以这种方式“拉平”列表列表: 这跟说的有什么不同? 问题答案: 是“ splat”运算符:它接受一个列表作为输入,并将其扩展为函数调用中的实际位置参数。 所以如果,那就 这与传递just显然不同。对于你的情况,你有一个要拼合的列表列表;什么确实是在所有你传递给它的位置参数,其中每个位置参数是在自己的权利迭代拼接返回一个迭代。 换句话说,你希望将每个列表作为参数传递给,这会将它

  • 本文向大家介绍Python 带星号(* 或 **)的函数参数详解,包括了Python 带星号(* 或 **)的函数参数详解的使用技巧和注意事项,需要的朋友参考一下 1. 带默认值的参数 在了解带星号(*)的参数之前,先看下带有默认值的参数,函数定义如下: (1)带默认值的参数(defaultStr、defaultNum)不传参时的调用: (2)带默认值的参数(defaultStr、defaultN

  • 主要内容:用数组作函数参数在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的 指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。 像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。 有的时候,对于整数、小数

  • 问题内容: 我正在使用itertools.chain以这种方式“拉平”列表列表: 这跟说的有什么不同? 问题答案: 是“ splat”运算符:它接受一个列表作为输入,并将其扩展为函数调用中的实际位置参数。 所以如果是,那就等于说 这与传递just显然不同。对于您的情况,您有一个想要拼合的列表列表;什么确实是在所有你传递给它的位置参数,其中每个位置参数是在自己的权利迭代拼接返回一个迭代。 换句话说,

  • 函数参数中的星号有什么作用? 当我查看pickle模块时,我看到: 我知道前面的参数有一个单星号和双星号(对于可变数量的参数),但是它没有前面的任何东西。我很确定这和泡菜无关。这可能只是这种情况发生的一个例子。当我把这个发给翻译时,我才知道它的名字: 如果重要的话,我使用的是python 3.3.0。

  • 问题内容: 在Python(2.7)中,有没有更简单的方法可以做到这一点?:注意:这并不是什么花哨的事情,就像将所有局部变量放入字典一样。只是我在列表中指定的那些。 问题答案:

  • 问题内容: 我知道我应该避免由于这样的混乱而首先使用全局变量,但是如果我要使用它们,以下是使用它们的有效方法吗?(我正在尝试调用在单独函数中创建的变量的全局副本。) 第二个函数使用的是否具有与使用和修改的的全局副本相同的值?定义后调用函数时,顺序重要吗? 问题答案: 如果你只想访问全局变量,则只需使用其名称即可。但是,要更改其值,你需要使用global关键字。 例如 这会将全局变量的值更改为55。