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

时间:2017-03-21 08:03:04

标签: python class typecasting-operator

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

例如,假设我知道列表中的每个项都是类型为'myClass'的类实例 - 我如何使用它来构建我的对象,以便我的ide可以帮助完成代码?

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

我知道如何在Delphi中执行此操作(如上所述),但不是在python中。

由于

2 个答案:

答案 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)

enter image description here

答案 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/。在编写代码时,您可以在块(单元格)中执行它,并且可以轻松地查看对象方法或字段,而不是使用类型信息,而是使用内存中存在的对象本身。这非常适合数据分析或使用您不熟悉的框架。