如何在python中使用对象的类型?

2024-04-25 07:13:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想浏览一个对象列表,以便我的PyCharm IDE知道每个列表项的类型:

例如,假设我知道列表中的每个项都是“myClass”类型的类实例,那么如何使用它来强制转换对象,以便ide可以帮助完成代码?你知道吗

for i in range(len(myList)):
    myClass(myList[i]).myClassProperty .....

我知道如何在Delphi(类似于上面的东西)中实现它,但不知道如何在python中实现它。你知道吗

谢谢


Tags: 对象实例代码in类型列表forlen
2条回答

在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)

enter image description here

<>在动态类型化、解释中,不能获得类似java或C++的代码完成语言。那里不是强制转换,因为在python中不需要它。一个函数对于一个给定的对象是有效的,如果它需要实现方法,类型在这一点上与语言无关。不过,如果您希望您的参数是dict,那么使用isinstance保留一些运行时检查是一种很好的做法,否则您将遇到许多困难的bug。你知道吗

至于python中的代码完成,我发现有两种解决方案很有用。这里最好的ide可能是PyCharmhttps://www.jetbrains.com/pycharm/和PyDev-Eclipse插件http://www.pydev.org/manual_101_install.html。它们提供了一些代码完成。你知道吗

另一个是交互控制台Jupyterhttp://jupyter.org/。当您编写代码时,您可以在块(单元格)中执行它,并且很容易看到对象方法或字段,使用的不是类型信息,而是内存中存在的对象本身。这对于数据分析或使用不太熟悉的框架非常有用。你知道吗

相关问题 更多 >

    热门问题