我的第一个问题,请温柔一点。我搜索过,但在这里或其他地方找不到答案。
请注意,这个问题不适用于解包像*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)
我也尝试提供一个参数列表,但也没有用。
在这种情况下,明星论点到底意味着什么?谢谢。
单星号*只是意味着它强制您使用命名参数。在这种情况下,如果您想为 传递一个值follow_symlinks,您必须传递参数名称。
*
follow_symlinks
这个想法是你不必读取类似的函数调用foo(True, False, False)而不知道这些值在做什么。
foo(True, False, False)