Python:自动完成可以用于列表中的元素吗?
问题描述:
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或类似的东西
答
是的,它可以。这部作品在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]
自动完成的作品两种语法均可。
它取决于IDE(我们在谈论哪一个?),但IDE通常无法知道您的列表中是否只有一种类型的对象。 – Selcuk
不,在Python中没有泛型,因为它没有静态类型。您可以在同一个集合中始终拥有不同类型的对象。 – Selcuk
我知道你可以。即使使用func(a:int)语法,您也可以将任何对象作为参数传递,但它仍然可以作为程序员和IDE的指南。 – rgargente