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

时间:2019-04-11 09:41:20

标签: python class variables instance-variables attr

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

我已经看到一些东西可以验证我所寻找的内容,只是我在寻找一种获取实例变量而不是类变量的方法。 链接的主题:Looping over class variable's attributes in 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”,甚至没有“ table”。 但这不是主要问题,我正在寻找类似的东西:

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

是否有任何适当的方法可以在 init 中获取这些变量?

谢谢您的时间。

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

1 个答案:

答案 0 :(得分:0)

尝试

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'])