了解如何后default arguments work在 Python 中,我检查了我的所有代码以查找使用可变序列时可能发生的错误。
现在我有一个函数,其签名是:
def get_measurements(self, shape = slice(None, None, None),
size = slice(None, None, None),
height = slice(None, None, None),
pressure = slice(None, None, None),
LE = slice(None, None, None),
fname = None)
我现在想知道,切片对象是可变的吗?这会在上述情况下使用默认值导致问题吗?
最佳答案
slice
对象是不可变的。
>>> s = slice(None)
>>> s
slice(None, None, None)
>>> s.start = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: readonly attribute
>>> s.stop = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: readonly attribute
>>> s.step = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: readonly attribute
关于python - 切片对象在函数声明中是否可变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30729055/