2016-03-04 83 views
1

Python在函数参数和函数返回类型中有类型提示。是否有类似于一个类的元素?我想能够使用自动完成在类似下面的例子:Python:自动完成可以用于列表中的元素吗?

class MyClass: 
    def hello(self): 
     print("Hello") 

mylist = [] 
mylist.append(MyClass()) 

for i in mylist: 
    i.hello() # No autocomplete here 

我明白这取决于IDE,但我的问题是关于像上面提到的代码提示一些语言功能。像mylist = []:MyClass或类似的东西

+0

它取决于IDE(我们在谈论哪一个?),但IDE通常无法知道您的列表中是否只有一种类型的对象。 – Selcuk

+0

不,在Python中没有泛型,因为它没有静态类型。您可以在同一个集合中始终拥有不同类型的对象。 – Selcuk

+0

我知道你可以。即使使用func(a:int)语法,您也可以将任何对象作为参数传递,但它仍然可以作为程序员和IDE的指南。 – rgargente

回答

0

是的,它可以。这部作品在WingIDE(我在PyCharm敢肯定,以及):

from typing import List 

class MyClass: 
    def hello(self): 
     print("Hello") 

mylist: List[MyClass] = [] 
mylist.append(MyClass()) 

for i in mylist: 
    i.hello() # autocompleted here 

如果3.6版本之前使用Python,只是使用旧样式语法:

mylist = [] # type: List[MyClass] 

自动完成的作品两种语法均可。

相关问题