,可以使用Python的内置函数dir()
和getattr()
来实现。
dir()
函数返回一个包含对象所有属性和方法的列表。我们可以通过遍历这个列表,排除掉一些特殊属性和方法,来获取类的属性。
getattr()
函数用于获取对象的属性值。我们可以使用这个函数来获取类的具体属性。
下面是一个示例代码:
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print("Hello!")
# 获取类的属性
def get_class_attributes(cls):
attributes = []
for attribute in dir(cls):
if not attribute.startswith("__") and not callable(getattr(cls, attribute)):
attributes.append(attribute)
return attributes
# 示例用法
my_class_attributes = get_class_attributes(MyClass)
print(my_class_attributes)
输出结果为:
['age', 'name']
在这个例子中,我们定义了一个名为MyClass
的类,它有两个属性name
和age
,以及一个方法say_hello()
。get_class_attributes()
函数接受一个类作为参数,使用dir()
函数获取类的所有属性和方法,然后通过排除特殊属性和方法,得到类的属性列表。
请注意,这个方法只能获取类的属性,无法获取属性的类型信息。如果需要获取属性的类型信息,可以使用typing
模块中的get_type_hints()
函数。
这是一个简单的方法来获取没有Pydantic BaseModel的类的属性。希望对你有帮助!
领取专属 10元无门槛券
手把手带您无忧上云