我熟悉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 BaseClass
python将不知道base_class
模块在哪里,所以你不会看到去定义工作。您将不必将calculation
目录添加到sys.path
,或者像我上面建议的那样更改导入。
通常情况下,这将使用F12
,或右键单击并进入定义