繁体   English   中英

如何在python中获取对象的属性类型

[英]How to get type of object's attribute in python

假设我有以下课程:

class myClass():
    def __init__(self, number):
        self.myStr = "bla"
        self.myInt = number * 3

如何获得属性类型? 我的意思是我想获得以下列表:['str','int']?

我也希望它能在派生类上工作。

非常感谢 :)

使用type()函数。 您甚至可以使用它来打印出这样的变量类型:

print(type(variable_name))

RHP几乎拥有它。 您想要组合dirtypegetattr函数。 这样的理解应该是您想要的:

o = myClass(1)
[type(getattr(o, name)).__name__ for name in dir(o) if name[:2] != '__' and name[-2:] != '__']

这将为您提供['int', 'str'] (因为myIntmyStr之前按字母顺序排序)。

分解:

  1. getattr查找对象上属性的名称
  2. type获取对象的类型
  3. __name__上的__name__给出type的字符串名称
  4. dir列出对象上的所有属性(包括__dunder__属性)
  5. 理解中的if测试过滤掉__dunder__属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM