以下是一个示例代码,演示了如何按属性类型提取值:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("John Doe", 30)
def extract_values(obj, property_type):
values = []
for attr_name in dir(obj):
attr_value = getattr(obj, attr_name)
if isinstance(attr_value, property_type):
values.append(attr_value)
return values
string_values = extract_values(person, str)
print(string_values) # 输出: ["John Doe"]
integer_values = extract_values(person, int)
print(integer_values) # 输出: [30]
在上面的示例中,我们定义了一个Person
类,它具有name
和age
属性。然后,我们创建了一个Person
实例person
。
extract_values
函数接受两个参数:obj
是要提取值的对象,property_type
是要提取的属性类型。它使用dir(obj)
函数获取对象的所有属性名,并使用getattr(obj, attr_name)
函数获取属性值。然后,它使用isinstance
函数检查属性值的类型是否与property_type
相匹配。如果匹配,则将属性值添加到values
列表中。最后,它返回这个列表。
在示例中,我们使用extract_values
函数两次,一次提取字符串类型的值,一次提取整数类型的值,并将结果打印出来。
上一篇:按属性类型提取对象键