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

Python how to print all object properties in one line

本问题已经有最佳答案,请猛点这里访问。

如何将所有对象属性以如下方式打印在一起:

1
print obj

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


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

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

如果对象是模块对象,则列表包含模块属性的名称。如果对象是一个类型或类对象,则列表包含其属性的名称,以及其基的属性的递归名称。否则,该列表将包含对象的属性名称、类属性的名称以及类的基类的递归属性。

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


您可以将内置函数添加到对象(例如__str__(__repr__()中)

1
2
3
4
5
6
7
8
9
class MyObject:

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

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