如何在__init__中获取python类实例变量?

最后发布: 2019-04-11 09:41:20


问题

我想知道是否有一种方法可以获取init内的类实例变量。

我已经看到一些东西可以验证我所寻找的内容,只是我在寻找一种获取实例变量而不是类变量的方法。 链接的主题: 在python中循环访问类变量的属性

假设我有一个课程,例如:

class Identity:
    table = "tb_identity"
    def __init__(self, id="", app_name="", app_code="", state="", criticality=""):
        self.id = id
        self.app_name = trigram_name
        self.app_code = trigram_irt
        self.state = state
        self.criticality = criticality

我希望能够获得带有实例变量名称的列表,例如:

["id","app_name","app_code","state","criticality"]

与诸如:

members = [getattr(Identity,attr) for attr in dir(Identity) if not attr.startswith("__")]

我只得到“ tb_identity”,甚至没有“表”。 但这不是主要问题,我正在寻找类似的东西:

["id","app_name","app_code","state","criticality"]

有什么适当的方法可以在init中获取这些变量?

感谢您的时间。

编辑:有没有这样做的任何方式?

python class variables instance-variables attr
回答

尝试

class Identity:
    table = "tb_identity"
    def __init__(self, id="", app_name="", app_code="", state="", criticality=""):
        self.id = id
        self.app_name = 'trigram_name'
        self.app_code = 'trigram_irt'
        self.state = state
        self.criticality = criticality
        print(self.__dict__.keys())

i = Identity()

输出量

dict_keys(['id', 'app_name', 'app_code', 'state', 'criticality'])