Message='builtin_function_or_method' object does not support item assignment Source=E:\1daer\wanganshijian\6.10\_6.10.py StackTrace: File "E:\1daer\wanganshijian\6.10\_6.10.py", line 4, in <module> (Current frame) input[i] = chr(enc[i] ^ iv) ~~~~~^^^ TypeError: 'builtin_function_or_method' object does not support item assignment
时间: 2024-03-24 22:41:16 浏览: 245
builtin-__fls.rar_if
这个错误是因为在 Python 中,函数参数是不可变的,所以不能像 C 语言那样通过下标来修改函数参数的值。解决这个问题的方法是,将函数参数 `input` 定义为一个可以修改的对象,比如列表或者字节数组,然后在函数内部修改该对象的值。
以下是一个修改后的 Python 实现:
```python
def construct_input(input):
enc = [65, 192, 124, 229, 151, 36, 175, 112, 235, 157, 6, 161, 95, 250, 97, 27, 178, 42, 213, 56]
iv = 0x33
for i in range(20):
input[i] = enc[i] ^ iv
iv = input[i] + iv
```
在这个实现中,我们将函数参数 `input` 定义为一个列表,然后在函数内部通过下标来修改列表中相应位置的值。这样就可以避免上述错误的出现。
阅读全文