从网上摘了段代码,想学一下生成器。
def fib(times):
n=0
a,b = 0,1
while n<times:
yield b
a,b=b,a+b
n=n+1
return "done"
g=fib(5)
next(g)
for x in g:
print(x)
打个断点,开始愉快的调试。结果在调试的时候报错:SyntaxError: invalid syntax
下面是详细的报错信息。
D:\PycharmProjects\Hello_Python\venv\Scripts\python.exe "D:\Program Files\JetBrains\PyCharm 2019.2.4\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 2878 --file D:/PycharmProjects/Hello_Python/file/PythonAndNN/day02/fiber2.py
Traceback (most recent call last):
File "D:\Program Files\JetBrains\PyCharm 2019.2.4\helpers\pydev\pydevd.py", line 7, in <module>
from contextlib import contextmanager
File "D:\ProgramData\Anaconda3\Lib\contextlib.py", line 380
def _create_cb_wrapper(callback, /, *args, **kwds):
^
SyntaxError: invalid syntax
报错信息中说contextlib.py 中的380行出错了。。
好吧,我们去看一下380行说了啥呢
还真让我发现了,原来是 Python版本太低了。。。。
position-only parameters 需要3.8版本之上的才能用