我想浏览一个对象列表,以便我的PyCharm IDE知道每个列表项的类型:
例如,假设我知道列表中的每个项都是类型为'myClass'的类实例 - 我如何使用它来构建我的对象,以便我的ide可以帮助完成代码?
for i in range(len(myList)):
myClass(myList[i]).myClassProperty .....
我知道如何在Delphi中执行此操作(如上所述),但不是在python中。
由于
答案 0 :(得分:1)
在PyCharm中,您可以使用Type Hinting:
class Bar:
def __init__(self,bar):
self.bar = bar
def do_bar(self):
return self.bar
def foo(x):
for el in x: # type: Bar
el.do_bar()
bars = [Bar('hello'), Bar('World')]
foo(bars)
答案 1 :(得分:0)
您无法在动态类型的解释语言中获得类似于Java或C ++的代码完成。没有强制转换,因为您在python中不需要它。如果某个函数需要实现所需的方法,则该函数适用于给定对象,此时类型与语言无关。尽管如果您希望您的参数是例如isinstance
,那么最好留下一些运行时检查。一个字典。否则你最终会遇到许多困难。
至于python中的代码完成,有两个我觉得有用的解决方案。这里最好的IDE可能是PyCharm https://www.jetbrains.com/pycharm/和PyDev Eclipse插件http://www.pydev.org/manual_101_install.html。它们提供了一些代码完成。
另一个是交互式控制台Jupyter http://jupyter.org/。在编写代码时,您可以在块(单元格)中执行它,并且可以轻松地查看对象方法或字段,而不是使用类型信息,而是使用内存中存在的对象本身。这非常适合数据分析或使用您不熟悉的框架。