gpt4 book ai didi

python - 我怎样才能只获得类变量?

转载 作者:太空狗 更新时间:2023-10-30 02:35:45 27 4
gpt4 key购买 nike

我有这个类定义:

class cols:
name = 'name'
size = 'size'
date = 'date'
@classmethod
def foo(cls):
print "This is a class method"

使用 __dict__ 我可以获得所有类属性(成员和变量)。还有“内部属性”(如 __main__)。如何在不实例化的情况下只获取类变量?

最佳答案

我不知道一个简单的方法,特别是从解释器的 POV 来看,类的方法和任何其他变量之间没有太大区别(方法有描述符,但就是这样......)。

所以当你只想要不可调用的类成员时,你必须稍微摆弄一下:

>>> class cols:
... name = "name"
... @classmethod
... def foo(cls): pass

>>> import inspect
>>> def get_vars(cls):
... return [name for name, obj in cls.__dict__.iteritems()
if not name.startswith("__") and not inspect.isroutine(obj)]
>>> get_vars(cols)
['name']

关于python - 我怎样才能只获得类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/521710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com