[英]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几乎拥有它。 您想要组合dir
, type
和getattr
函数。 这样的理解应该是您想要的:
o = myClass(1)
[type(getattr(o, name)).__name__ for name in dir(o) if name[:2] != '__' and name[-2:] != '__']
这将为您提供['int', 'str']
(因为myInt
在myStr
之前按字母顺序排序)。
分解:
getattr
查找对象上属性的名称 type
获取对象的类型 __name__
上的__name__
给出type
的字符串名称 dir
列出对象上的所有属性(包括__dunder__
属性) if
测试过滤掉__dunder__
属性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.