【问题标题】:Python: Can autocomplete be used for the elements in a list?Python:可以对列表中的元素使用自动完成功能吗?
【发布时间】:2021-08-07 19:11:58
【问题描述】:

Python 在函数参数和函数返回类型中有类型提示。类的元素有类似的东西吗?我希望能够在以下示例中使用自动完成功能:

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

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

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

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

【问题讨论】:

  • 这取决于 IDE(我们谈论的是哪一个?)但 IDE 通常无法知道您的列表中是否只有一种类型的对象。
  • 不,Python 中没有泛型,因为它不是静态类型的。您始终可以在同一个集合中拥有不同类型的对象。
  • 我知道你可以。即使您使用 func(a: int) 语法,您也可以将任何对象作为参数传递,但它仍然可以作为程序员和 IDE 的指南。
  • 是的,函数注释仅用于文档目的。

标签: python autocomplete type-hinting


【解决方案1】:

是的,它可以。这在 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]

自动完成功能适用于任何一种语法。

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2011-10-31
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多