我有一个使用代码foo = locals()
的python方法,它导致循环引用。如果我从控制台运行代码,请说使用python.exe run.py
代码可以运行并运行到最后。但是,如果我在Visual Studio中运行相同的代码,它会在ValueError上中断:检测到循环引用。 Visual Studio使用与我在控制台中调用的完全相同的python解释器。这怎么可能?
编辑:
Traceback (most recent call last):
File "F:\Projekty\Betfair\Repos\Betfair\run.py", line 16, in <module>
text_query='Horse Racing'
File "C:\Program Files\conda\lib\site-
packages\betfairlightweight\endpoints\betting.py", line 33, in
list_event_types
response = self.request(method, params, session)
File "C:\Program Files\conda\lib\site-
packages\betfairlightweight\endpoints\baseendpoint.py", line 27, in request
request = self.create_req(method, params)
File "C:\Program Files\conda\lib\site-
packages\betfairlightweight\endpoints\baseendpoint.py", line 52, in
create_req
return json.dumps(payload)
File "C:\Program Files\conda\lib\json\__init__.py", line 230, in dumps
return _default_encoder.encode(obj)
File "C:\Program Files\conda\lib\json\encoder.py", line 198, in encode
chunks = self.iterencode(o, _one_shot=True)
File "C:\Program Files\conda\lib\json\encoder.py", line 256, in iterencode
return _iterencode(o, 0)
ValueError: Circular reference detected
答案 0 :(得分:0)
运行
没问题foo = locals()
在一个程序中,无论是哪种情况。循环引用很常见,不应该停止程序。但是,听起来您正在使用调试器来尝试可视化值foo
,但不支持使用循环引用可视化值。 (可能正在尝试将值转换为JSON。)
如果您的调试器无法处理循环引用,请在其检查器/观察器中查找忽略foo
的选项以避免崩溃。