在Python中,可以使用内置函数vars()
和globals()
来获取一个类的所有对象。这两个函数返回一个字典,其中键是对象的名称,值是对象本身。然后,可以使用列表推导式将这些对象提取到一个列表中。
下面是一个示例代码:
class MyClass:
def __init__(self, name):
self.name = name
obj1 = MyClass("Object 1")
obj2 = MyClass("Object 2")
obj3 = MyClass("Object 3")
# 使用vars()函数获取当前作用域的所有对象
objects = [obj for obj in vars().values() if isinstance(obj, MyClass)]
print(objects)
输出结果为:
[<__main__.MyClass object at 0x000001234567890>, <__main__.MyClass object at 0x000009876543210>, <__main__.MyClass object at 0x000005432109876>]
在这个示例中,我们定义了一个名为MyClass
的类,并创建了三个对象obj1
、obj2
和obj3
。然后,使用vars()
函数获取当前作用域的所有对象,并使用列表推导式将类型为MyClass
的对象提取到列表objects
中。最后,打印输出了列表objects
。
需要注意的是,这种方法只能获取当前作用域中的对象。如果类的对象被定义在其他模块或函数中,需要在相应的作用域中使用vars()
或globals()
函数来获取对象。
领取专属 10元无门槛券
手把手带您无忧上云