列出一个类的所有属性

22 浏览
0 Comments

列出一个类的所有属性

这个问题已经在这里有了答案:

列出对象的属性[重复]

我们能列出一个类的所有属性(只有属性吗)?

比如我们有这个类:

class c1():
    def __init__(self, x, y):
        self.fx = x
        self.fy = y
        self.fz = 0
    def fun1():
        return self.fx

用dir(c1)可以得到一个包含所有对象(包括属性)的完整列表,但是我们不能区分方法和属性。

我想这样会有用:

type(dir(obj1)[-1]) # [-1]是最后一个属性,但type返回一个字符串。

admin 更改状态以发布 2023年5月23日
0
0 Comments

使用 __dict__.keys():

class c1():
    def __init__(self, x, y):
        self.fx = x
        self.fy = y
        self.fz = 0
    def fun1():
        return self.fx
obj1 = c1(1,2)
print(obj1.__dict__.keys())

输出: dict_keys(['fx', 'fy', 'fz'])

您可能还想查看 pprint()

0
0 Comments

你可以使用__dict__关键字来访问属性。

class c1():
    def __init__(self, x, y):
        self.fx = x
        self.fy = y
        self.fz = 0
    def fun1():
        return self.fx
obj1 = c1(1,2)
print(obj1.__dict__)

输出

{'fx': 1, 'fy': 2, 'fz': 0}

0