我对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
并且每个模块具有:
基类.py
class BaseClass():
def __init__(self, DbClass):
self.db_cls = DbClass
特定_类.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()
数据库_类.py
class DbClass():
def __init__(self):
pass
def execute_sql():
return "execute some sql"
在这里,我想从particular_class.py跳转到
ret = do_db_stuff.execute_sql()
到db_class.py
def execute_sql():
因为它是定义。
2条答案
按热度按时间gr8qqesn1#
通常使用
F12
,或右键单击并转到定义。sqserrrh2#
经过测试,这是同样的问题在我的机器上。所以我提交了一份报告的GitHub和以下是他们的回应:
from base_class import BaseClass
行中的导入在这个场景中是不正确的。它应该是from calculation.base_class import BaseClass
。并且你需要有PYTHONPATH=./src
。如果你有from base_class import BaseClass
,python将不知道base_class
模块在哪里,所以你不会看到go to definition工作。你将不得不添加calculation
目录到sys.path
或者按照我上面的建议修改导入。