type
- 可以通过type() 查看python对象属于哪一个类
- 由下面代码可以看到,li属于列表类,而MyClass属于type类
- type类是创建类的类,即元类。所有对象都继承于元类。
class MyClass(object):
pass
li = [1,2,3,4]
print(type(li))
print(type(MyClass))
isinstance
- 判断某一个类是否继承于某类 ```python class MyClass(object): def init(self): pass
print(isinstance(MyClass, object)) # 返回True
<a name="4QuQR"></a>
### hasattr
- 通过hasattr()判断对象是否拥有某个属性
- 如下,MyClass拥有__init__属性,所以返回True,而没有print属性,则返回False
```python
class MyClass(object):
def __init__(self):
pass
print(hasattr(MyClass, "__init__"))
print(hasattr(MyClass, "print"))
- getattr() 反射
- 以字符串的形式调用对象的属性和方法,可以搭配hasattr使用 ```python f = [“init“, “other”]
for i in f: if hasattr(my_class, i): getattr(my_class, i)
![image.png](https://cdn.nlark.com/yuque/0/2020/png/1325594/1594437582281-266de5c3-75bb-4b95-9b6b-112dfab76397.png#align=left&display=inline&height=46&margin=%5Bobject%20Object%5D&name=image.png&originHeight=52&originWidth=1242&size=29144&status=done&style=none&width=1100)
<a name="haqGH"></a>
### dir
- 查看类及父类的所有属性,以列表形式返回
```python
class MyClass(object):
def __init__(self):
print("__init__")
print(dir(MyClass))
dict
- 返回类的所有属性,以字典形式 ```python class MyClass(object): def init(self): print(“init“)
print(MyClass.dict) ```