我有两个脚本,main
和statistics
。在一个脚本main
中,调用另一个脚本statistics
中的几个函数。代码如下。你知道吗
if initial_action == "get_portfolio_statistics":
statistics.get_portfolio_status()
statistics.get_current_securities()
statistics.get_open_trades()
当然,只要调用名称,函数就匹配,我的IDE(PyCharm)不会给出任何警告。经过一次又一次的重构,测试发现了基本相同的错误报告:
Traceback (most recent call last):
File "G:/stuff/dev/!projects+repositories/RYZ/main.py", line 2, in <module>
import statistics
File "G:\stuff\dev\!projects+repositories\RYZ\statistics.py", line 1, in
<module>
import main
File "G:\stuff\dev\!projects+repositories\RYZ\main.py", line 12, in <module>
statistics.get_portfolio_status()
AttributeError: module 'statistics' has no attribute 'get_portfolio_status'
然而,也有一些有趣的重复出现。首先,在某些情况下,由于没有可识别的原因,当函数名发生更改时,测试将签出,但是,结果与进一步的测试不一致。其次,在文件路径中使用前后斜杠是不一致的,第一个调用使用G:/
,最后两个调用使用G:\
,尽管第一个调用和最后一个调用引用的是同一个文件。你知道吗
我的问题是,这个错误是函数命名的问题,是文件路径不一致的问题,是交叉导入的问题,还是因为被调用的函数不在类中。你知道吗
项目结构:
ryz server backend (RYZ directory)
- main.py
- statistics.py
导入结构:
# in main.py
import statistics
# in statistics.py
import main
statistics.py
结构:
<imports...>
def get_portfolio_status():
<code>
def get_current_securities():
<code>
def get_open_trades():
<code>
我敢打赌是因为交叉进口。试着移动任何统计.py需要到该文件,然后导入到并从中调用主.py. 你知道吗
你的函数命名是正常的。你知道吗
我不担心斜杠的混合。但是,如果您自己正在构建路径,请使用操作系统模块:
这将确保您获得适合您的平台的路径。你知道吗
相关问题 更多 >
编程相关推荐