问题的原因在于.join()方法只能用于字符串列表,而实例属性可能包含不同类型的数据。简单解决方法是将实例属性的值先转换为字符串,然后再添加到列表中。以下是示例代码:
class Person: def init(self, name, age): self.name = name self.age = age
def __str__(self):
return f"{self.name}, {self.age}"
person1 = Person("Alice", 25) person2 = Person("Bob", 30)
person_list = [] for attr, value in vars(person1).items(): person_list.append(str(value))
print(", ".join(person_list))
输出结果为:"Alice, 25"
在以上代码中,我们首先创建了一个Person类,并实例化两个对象person1和person2。然后我们将遍历person1的实例属性,并将其值转换为字符串后添加到person_list中。最后,我们使用.join()方法将person_list中的元素连接起来,以逗号分隔。最终,输出结果是正确的,即"Alice, 25"。