如何在VSCode中"go to definition"超类的方法



我熟悉Pycharm,不熟悉VSCode。我想去"定义"就像我在《Pycharm》中做的那样,但我不知道该怎么做。顺便说一句,我在WSL2 Ubuntu中设置了环境,并使用WSL VSCode扩展从本地设置了代码。

Directory tree view is like :
src
|-calculation
|-base_class.py
|-particular_class.py
|-db_related_module
|-db_class.py

,每个模块有:

base_class.py

class BaseClass():
def __init__(self, DbClass):
self.db_cls = DbClass

particular_class.py

from base_class import BaseClass
from db_related_module.db_class import DbClass

class ParticularCalClass(BaseClass):
def __init__(self):
super().__init__(
DbClass
)
def some_calculation(self):
do_db_stuff = self.db_cls
ret = do_db_stuff.execute_sql()
return ret

def main():
calc_cls = ParticularCalClass()
print(calc_cls.some_calculation())
main()

db_class.py

class DbClass():
def __init__(self):
pass
def execute_sql():
return "execute some sql"

这里我想从specialar_class .py

ret = do_db_stuff.execute_sql()

对db_class.py

def execute_sql():

经过测试,我的机器上也出现了同样的问题。所以我在GitHub上提交了一份报告,下面是他们的回应:

本场景中from base_class import BaseClass行的导入不正确。应该是from calculation.base_class import BaseClass。你还需要PYTHONPATH=./src。如果你有from base_class import BaseClasspython将不知道base_class模块在哪里,所以你不会看到去定义工作。您将不必将calculation目录添加到sys.path,或者像我上面建议的那样更改导入。

通常情况下,这将使用F12,或右键单击并进入定义

最新更新