Python如何在一行中打印所有对象属性

时间:2018-01-19 09:31:34

标签: python

如何打印所有对象属性,例如:

print obj

但这不会打印对象的所有属性

2 个答案:

答案 0 :(得分:4)

您可以使用内置方法dir(obj)

默认dir()机制对不同类型的对象的行为有所不同,因为它试图产生最相关的信息,而不是完整的信息:

如果对象是模块对象,则列表包含模块属性的名称。 如果对象是类型或类对象,则列表包含其属性的名称,并且递归地包含其基础的属性。 否则,该列表包含对象的属性名称,其类的属性的名称,以及其类的基类的属性的递归。

来源:https://docs.python.org/2/library/functions.html#dir

答案 1 :(得分:1)

您可以为对象添加内置函数(例如__str__()或__repr__()

class MyObject:

    def __init__(self):
        #add proprieties
        self.x = 32
        self.y = 43

    def __str__(self):
        return ("Object: " + str(self.x) + " " + str(self.y))