根据属性名称打印类的属性

9 浏览
0 Comments

根据属性名称打印类的属性

有没有办法打印出Python对象的所有属性及其值?\n例如,对于以下类和对象:\n

class man:
    def __init__(self):
      name = "jim"
      age = 2
him = man()

\n我想打印出对象\"him\"的所有属性及其值。我希望有一种类似以下代码的方式:\n

for variable_name in him:
    print variable_name," : ",him.variable_name

\n应该打印出:\n

name : jim
age : 2

\n在Python中有没有办法实现这个?

0
0 Comments

问题出现的原因是:在Python中,对象的属性存储在对象的__dict__属性中。为了打印对象的属性,可以通过访问对象的__dict__属性来获取属性的名称和值。但是,在上述代码中,class定义中的拼写错误(应为object而不是objet)导致了问题的出现。

解决方法是:将class定义中的拼写错误进行更正,将object拼写正确。然后,使用对象的__dict__属性或vars()函数来访问对象的属性并打印出来。具体的代码如下:

class man(object):
    def __init__(self):
        self.name = "jim"
        self.age = 2
him = man()
print(him.__dict__)

或者使用vars()函数替代him.__dict__:

class man(object):
    def __init__(self):
        self.name = "jim"
        self.age = 2
him = man()
print(vars(him))

通过以上的代码修改和调整,就可以正确地打印出对象的属性。

0