PyCharm未正确从导入中提取docstring

2024-05-12 21:14:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在向一个项目添加docstring,这样我就可以利用PyCharm中的Quick Documentation特性。我的项目看起来像:

script\
    main.py
    HelperClasses/
        Helper.py
        ...
    OtherClasses/
        CustomClass1.py
        CustomClass2.py
        ...

main.py导入OtherClasses中的所有文件,并利用它们实现各种功能,OtherClasses反过来导入一些HelperClasses并利用它们的功能。它们看起来像:

main.py

from OtherClasses import CustomClass1
from OtherClasses import CustomClass2

... 

CustomClass1.py

from HelperClasses import Helper
... 

Helper.py


def someFunction(x, y, z):
    """
    Does something with x, y and z.
    :param x: X value
    :param y: Y value
    :param z: Z value
    :return: Some other value
    """
    return doSomething(x, y, z)

... 

我的问题是,在尝试使用Quick Documentation功能的同时向CustomClass1.pyPyCharm添加代码时,无法找到Helper.py文件并对其进行适当的索引,以便能够找到docstring。因此,我不能使用Quick Documentation特性来查找someFuncion的docstring

我相信这是因为从CustomClass1.py正确的导入应该是from ..HelperClasses import Helper,但是由于这个脚本是从main.py导入的,所以导入需要从main.py的上下文中进行

此外,当我使用from ..HelperClasses import Helper时,它被正确地索引,但是当运行main.py时,会抛出一个错误:

ValueError: attempted relative import beyond top-level package

因此,在本例中,是否有任何方法可以保持docstrings工作,同时也有有效的导入


Tags: frompyimport功能helper利用paramvalue