python 如何在VSCode中“转到定义”到超类的方法

4bbkushb  于 2023-01-08  发布在  Python
关注(0)|答案(2)|浏览(160)

我对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():

因为它是定义。

gr8qqesn

gr8qqesn1#

通常使用F12,或右键单击并转到定义。

sqserrrh

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或者按照我上面的建议修改导入。

相关问题