【发布时间】:2019-04-11 09:41:20
【问题描述】:
我想知道是否有办法获取 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 中获取这些变量?
感谢您的宝贵时间。
编辑:没有实例化的任何方式吗?
【问题讨论】:
-
list(vars(Identity())) -
感谢@Aran-Fey 的回答。您知道是否有任何方法可以在不实例化对象的情况下做到这一点?以下是一些其他链接主题:stackoverflow.com/questions/61517/…stackoverflow.com/questions/2675028/…
-
有一种方法可以做到这一点……但前提是您可以访问源代码,并且愿意编写一些有问题的代码。
标签: python class variables instance-variables attr