如何获取Python对象中的属性名?

4 投票
1 回答
8193 浏览
提问于 2025-04-16 18:56

比如我有一个这样的Python类:

class Myclass():
     a = int
     b = int

假设我不知道这个类的名字,那么我需要获取属性的名字?("a"和"b")

1 个回答

10

如果你想获取所有的属性(包括私有的),只需要这样做:

dir(Myclass)

不过,属性名以 _ 开头的都是私有的或内部使用的。例如,即使是你简单的 Myclass 也会有一个 __module__ 属性和一个空的 __doc__ 属性。要把这些过滤掉,可以使用:

filter(lambda aname: not aname.startswith('_'), dir(Myclass))

撰写回答