os.removexattr的Python文档 - '*'(star)参数是什么意思?

时间:2013-12-28 02:53:20

标签: python operating-system file-attributes

我的第一个问题,请温柔。我搜索过但在这里或其他地方找不到答案。

请注意,此问题不适用于解压缩* args等参数。

os.removexattr的python 3.3文档中,陈述如下:

os.removexattr(path, attribute, *, follow_symlinks=True)

    Removes the extended filesystem attribute attribute from path.
    attribute should be bytes or str. If it is a string, it is encoded
    with the filesystem encoding.

    This function can support specifying a file descriptor and not
    following symlinks.

请注意,第三个参数是星号:*

我认为这意味着“指定一个由逗号分隔的属性或多个属性”, 但是当我试图这样做时,我得到一个例外:

import os
os.removexattr('M7-AAE-01.jpg', 'user.camera_brand', 'user.camera_model')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: Function takes at most 2 positional arguments (3 given)

我也试图提供一个参数列表,但这也不起作用。

在这种情况下,星形参数到底意味着什么? 谢谢。

1 个答案:

答案 0 :(得分:4)

单个星号*仅表示它强制您使用命名参数。在这种情况下,如果要传递follow_symlinks的值,则必须传递参数名称。

这个想法是你不必阅读foo(True, False, False)这样的函数调用,也不知道这些值是做什么的。