TypeError: __main__.print_hello() argument after * must be an iterable, not NoneType
时间: 2024-02-21 13:01:14 浏览: 155
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
5星 · 资源好评率100%
这个错误是因为你没有给 `ThreadWrapper` 的 `args` 参数传入一个可迭代对象(iterable),而是传入了 `None`。
可以在初始化 `ThreadWrapper` 对象时,给 `args` 参数传入一个空的元组 `()`,这样就可以避免这个错误:
```python
import threading
class ThreadWrapper:
def __init__(self, target_func, args=None):
self.target = target_func
self.args = args
self.thread = threading.Thread(target=self.run)
def run(self):
self.target(*self.args)
def start(self):
self.thread.start()
def join(self):
self.thread.join()
def print_hello():
print("Hello World!")
tw = ThreadWrapper(print_hello, ())
tw.start()
tw.join()
```
这样就可以正常输出 `Hello World!` 了。
阅读全文