获取Python类的成员信息,使用get_class_members()函数是一个好选择
发布时间:2023-12-17 07:12:24
要获取Python类的成员信息,可以使用内置的inspect模块中的getmembers()函数。getmembers()函数返回一个类的所有成员的元组列表,包括方法、属性、类变量等。
下面是一个使用getmembers()函数获取类的成员信息的例子:
import inspect
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(f"Hello, my name is {self.name}. I am {self.age} years old.")
person = Person("John", 25)
members = inspect.getmembers(person)
for member in members:
print(member)
输出结果为:
('__class__', <class '__main__.Person'>)
('__delattr__', <method-wrapper '__delattr__' of Person object at 0x7f0f640a15b0>)
('__dict__', {'name': 'John', 'age': 25})
('__dir__', <built-in method __dir__ of Person object at 0x7f0f640a15b0>)
('__doc__', None)
('__eq__', <method-wrapper '__eq__' of Person object at 0x7f0f640a15b0>)
('__format__', <built-in method __format__ of Person object at 0x7f0f640a15b0>)
('__ge__', <method-wrapper '__ge__' of Person object at 0x7f0f640a15b0>)
('__getattribute__', <method-wrapper '__getattribute__' of Person object at 0x7f0f640a15b0>)
('__gt__', <method-wrapper '__gt__' of Person object at 0x7f0f640a15b0>)
('__hash__', <method-wrapper '__hash__' of Person object at 0x7f0f640a15b0>)
('__init__', <bound method Person.__init__ of <__main__.Person object at 0x7f0f640a15b0>>)
('__init_subclass__', <built-in method __init_subclass__ of type object at 0x5570f628a320>)
('__le__', <method-wrapper '__le__' of Person object at 0x7f0f640a15b0>)
('__lt__', <method-wrapper '__lt__' of Person object at 0x7f0f640a15b0>)
('__module__', '__main__')
('__ne__', <method-wrapper '__ne__' of Person object at 0x7f0f640a15b0>)
('__new__', <built-in method __new__ of type object at 0x5570f628a320>)
('__reduce__', <built-in method __reduce__ of Person object at 0x7f0f640a15b0>)
('__reduce_ex__', <built-in method __reduce_ex__ of Person object at 0x7f0f640a15b0>)
('__repr__', <method-wrapper '__repr__' of Person object at 0x7f0f640a15b0>)
('__setattr__', <method-wrapper '__setattr__' of Person object at 0x7f0f640a15b0>)
('__sizeof__', <built-in method __sizeof__ of Person object at 0x7f0f640a15b0>)
('__str__', <method-wrapper '__str__' of Person object at 0x7f0f640a15b0>)
('__subclasshook__', <built-in method __subclasshook__ of type object at 0x5570f628a320>)
('__weakref__', None)
('age', 25)
('name', 'John')
('say_hello', <bound method Person.say_hello of <__main__.Person object at 0x7f0f640a15b0>>)
在上述例子中,getmembers()函数返回的列表包含了类Person的所有成员信息。其中,成员以元组的形式返回,元组的 个元素是成员的名称,第二个元素是成员的值。
通过遍历成员列表,我们可以访问每个成员的具体信息,例如成员的名称和值。
这样,我们就可以使用getmembers()函数获取Python类的成员信息。
