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 16:41:16 浏览: 17
这个错误是因为在 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` 定义为一个列表,然后在函数内部通过下标来修改列表中相应位置的值。这样就可以避免上述错误的出现。
相关问题
pyqt5 status'builtin_function_or_method' object does not support item assignment 这个报警怎么解决?
这个报错通常是因为你正在尝试对一个内置函数或方法进行赋值操作,而它们是不可变的对象。你需要检查你的代码,找到这个错误的赋值操作,并将其修改为正确的语法。
例如,你可能会这样写:
```
self.status['message'] = 'Ready'
```
这里的 `status` 可能是一个内置函数或方法,不能被赋值。如果你想要在 PyQt5 中设置状态栏的文本,应该使用 `QStatusBar.showMessage()` 方法,像这样:
```
self.statusBar().showMessage('Ready')
```
这样就可以正确地设置状态栏的文本了。希望能帮到你解决问题!
test = raw_preds.sort[:15] TypeError: 'builtin_function_or_method' object is not subscriptable
这个错误提示表明,你尝试对一个Python内置函数或方法进行下标操作,而Python内置函数或方法是不支持下标操作的。
在这个错误中,raw_preds.sort是一个Python内置方法,它用于原地对NumPy数组进行排序,而不是返回排序后的结果。因此,你可以使用以下代码来对raw_preds进行排序并取前15个元素:
```
import numpy as np
raw_preds = np.array([5, 3, 8, 4, 2, 1, 7, 6])
sorted_indices = np.argsort(raw_preds)
top_indices = sorted_indices[:15]
top_values = raw_preds[top_indices]
print(top_values)
```
这个代码片段将返回raw_preds中排序后的前15个元素。注意,这里使用了argsort函数来获取排序后的索引值,然后使用切片操作来获取前15个索引值,并在原始数组中使用这些索引值来获取对应的元素。