TypeError: 'method' object does not support item assignment
时间: 2023-09-24 16:12:28 浏览: 351
这个错误是由于你尝试在一个方法对象上进行项赋值操作所引起的。方法是一个属于类的函数,它不能像列表或字典那样进行项赋值。
要解决这个问题,你需要确保你在正确的对象上执行项赋值操作。请检查你的代码,确认你是否使用了正确的对象和正确的语法来进行项赋值。如果你需要在一个方法内部修改对象的属性或内容,你可以在方法内部使用`self`关键字来引用当前对象,并使用适当的属性或方法来进行修改。
相关问题
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
这个错误是因为在 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` 定义为一个列表,然后在函数内部通过下标来修改列表中相应位置的值。这样就可以避免上述错误的出现。
python ‘builtin_function_or_method’ object does not support item assignment 我想将一个线程存储在字典中
这个错误提示 "TypeError: 'builtin_function_or_method' object does not support item assignment" 表示你在尝试对 Python 的内置函数或方法(比如线程或其他一些内建对象)进行赋值操作,而这些对象并不支持这样的属性修改。在Python中,字典通常用于存储键值对,如果想要将一个线程对象作为字典的值,你需要先创建一个线程实例,并将其引用赋给字典。
例如:
```python
thread = threading.Thread(target=some_function) # 创建线程实例
thread_dict = {'thread_key': thread} # 将线程实例作为字典的值
# 确保线程开始运行后,再进行赋值
thread.start()
thread.join() # 如果有必要等待线程结束
# 现在你可以像下面这样访问或修改字典:
thread_dict['thread_key'] = another_thread # 如果你想替换原来的线程
```
记住,对于线程这种资源,最好是在适当的时候管理它们的生命周期,而不是直接在字典中保存引用并期望永远保持活动状态。
阅读全文
相关推荐














