-2

我正在尝试找出以下问题的解决方案:

#ExampleA.py
class a:
    def my_great_method_A(self):
        pass

#ExampleB.py
def functionX(inst_a): #Argument 'inst_a' will be always ExampleA.py's class a.
    inst_a.my_great_method_A() #<--- 

我使用 Liclipse 作为 python 编辑器。当我输入最后一行“a.my_gr ...”时,我想让编辑器的自动填充功能启动以建议使用“my_great_method_A()”。然而,它实际上并没有暗示什么。

我明白为什么,因为如果“inst_a”是“a”类,编辑器没有任何线索。为了解决这个问题,我可以执行以下操作来使自动填充器工作:

#ExampleA.py
class a:
    def my_great_method_A(self):
        pass

#ExampleB.py
import ExampleA

def functionX(inst_a): #Argument 'inst_a' will be always ExampleA.py's class a.
    ExampleA.a.my_great_method_A(inst_a) #<--- then autofilling works

但是,为了代码的可读性,我宁愿使用 . 格式,相信大家都一样。但是不知道大家是怎么处理的。很多时候我必须进入导入的文件并复制并粘贴方法名称,这很乏味。显然,我错过了每个人都知道的东西。顺便说一句,这是我第一次在 stackoverflow 上发帖。我希望这是一个有效的摆在这里。

4

2 回答 2

0

LiClipse/PyDev 可以识别文档字符串中的类型提示(如http://www.pydev.org/manual_adv_type_hints.html中所述)或使用新的 PEP 484 类型提示(https://www.python.org/dev/peps/ pep-0484/ )...因此,如果您使用其中之一,它应该可以工作。

注意:我个人更喜欢文档字符串,但这可能是个人喜好问题,两者都应该可以被 LiClipse/PyDev 识别。

于 2017-06-27T11:25:43.970 回答
0

我不知道有什么方法可以让这个编辑器猜测你所期望的类型。但由于 Python 是无类型的,它总是只能猜测。

但是请注意,使用类显式方法的解决方法不是一个好习惯。如果您的代码有一天会发展,它将不允许您在将来传递 ExampleA 的扩展。所以它不仅仅是可读性

于 2017-06-22T21:40:44.810 回答