python 获取已实例化对象的所有类
时间: 2023-08-03 16:09:31 浏览: 41
在 Python 中,可以使用 `type()` 函数来获取一个对象的类。如果想要获取一个已经实例化的对象的所有类,可以使用该对象的 `__class__` 属性。例如,
```python
class A:
pass
class B(A):
pass
b = B()
print(type(b)) # 输出:<class '__main__.B'>
print(b.__class__) # 输出:<class '__main__.B'>
print(b.__class__.__bases__) # 输出:(<class '__main__.A'>,)
```
在上面的代码中,`type(b)` 获取到的是 `B` 类,而 `b.__class__` 也是 `B` 类。`b.__class__.__bases__` 获取到的是 `B` 类的父类,即 `A` 类。
相关问题
python 获取已实例化对象的所有属性
可以使用 `dir()` 函数来获取已实例化对象的所有属性,比如:
```python
class MyClass:
def __init__(self):
self.attribute1 = 1
self.attribute2 = 'hello'
def my_method(self):
pass
my_object = MyClass()
print(dir(my_object))
```
输出:
```
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'attribute1', 'attribute2', 'my_method']
```
可以看到,输出了该实例化对象的所有属性和方法,包括类继承的属性和方法。其中以双下划线开头和结尾的属性和方法是 Python 内置的特殊属性和方法,不需要手动实现。
python 获取已实例化对象的所有属性值
你可以使用Python内置的`dir`函数获取已实例化对象的所有属性和方法,如下所示:
```python
class MyClass:
def __init__(self, a, b):
self.a = a
self.b = b
obj = MyClass(1, 2)
print(dir(obj))
```
运行结果如下:
```
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__weakref__', 'a', 'b']
```
其中,`a`和`b`是`MyClass`类的属性。你可以通过访问`obj.a`和`obj.b`来获取它们的值。