列出课程的所有属性

时间:2019-04-20 01:26:47

标签: python

我们可以列出一个类的所有属性(仅属性)?

如果有的话,此类例如:

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]将是最后一个属性,但是类型返回一个字符串。

2 个答案:

答案 0 :(得分:2)

您可以使用__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}

答案 1 :(得分:1)

使用__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()