如何获取属于 Python 3 中特定类的所有属性(继承的除外)的值

如何(在 Python 3 中)获取属于特定类的所有属性的值。我只需要在特定类中定义的那些值(属性)而没有继承的值。

下面是一些例子:

class A(object):
    def __init__(self, color):
        self._color = color

    @property
    def color(self):
        return self._color

class B(A):
    def __init__(self, color, height, width):
        super().__init__(color)
        self._height = height
        self._width = width

    @property
    def height(self):
        return self._height

    @property
    def width(self):
        return self._width

这是获取所有值(包括继承的)的代码:

b_inst = B('red', 10, 20)
val = [{p: b_inst.__getattribute__(p)} for p in dir(B)
       if isinstance(getattr(B, p), property)]

print(val)

>> [{'color': 'red'}, {'height': 10}, {'width': 20}]

现在,我只想检索仅在class B,即height和 中定义的属性的值width

布鲁诺·德舒利耶

请注意,在 Python 中,“属性”具有非常具体的含义(内置property类型)。如果您只关心这一点,那么您只需要查找您的子类__dict__

val = [p.__get__(c) for k, p in type(c).__dict__.items() if isinstance(p, property)]

如果你想要一些可以在任意属性上工作的东西,那么你所要求的就是不可能的,因为 Python 对象(除了少数例外)是基于 dict 的(与 C++ 或 Java 中的基于结构的)和动态的(任何一块代码可以在每个实例的基础上添加/删除任意属性),因此没有固定模式或给定对象可能拥有或不拥有的属性的类级别定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python3中获取“旧” zip()?

来自分类Dev

如何不仅获取单个记录,而且获取属于特定搜索查询的所有记录

来自分类Dev

如何在Python 3中通过IP获取WhoIs信息?

来自分类Dev

使用ElementTree获取python3中的所有xml属性值

来自分类Dev

如何从python 3中的设置中获取列表

来自分类Dev

如何检查python 3中的RLock是否被任何线程获取

来自分类Dev

如何在python 3中获取子数组

来自分类Dev

如何在Python中查找不属于示例的值?

来自分类Dev

如何在Python中获取每个有序行的值的前3个元素

来自分类Dev

Python3,列表中的元组,如何获取其中的所有值

来自分类Dev

如何获取python3数据类实例的索引?

来自分类Dev

如何在Python中的csv的所有列中获取特定类别的结果的datetime值?

来自分类Dev

如何在pyfiglet python3中获取所有可用的字体

来自分类Dev

在python中获取XML的所有相同属性值

来自分类Dev

如何从python的字典列表中获取前3名名字

来自分类Dev

如何获取属于div类的特定文本

来自分类Dev

如何获取属于所有numpy数组的项目?

来自分类Dev

如何获取属于类的个人,对象属性和数据属性,并且在sparql中具有特定的批注

来自分类Dev

如何从jquery中属于同一类的成员的元素中获取所有不同的值?

来自分类Dev

如何在python中以列表的形式获取类的所有属性

来自分类Dev

Python 3.x-如何从文件中获取变量的内容

来自分类Dev

如何获取属于特定组的成员列表

来自分类Dev

如何检查python 3中的RLock是否被任何线程获取

来自分类Dev

在Python 3中从子类获取父类的属性

来自分类Dev

Qt:如何获取属于特定班级的所有班级

来自分类Dev

如何获取网页中的所有单词 - Python3

来自分类Dev

试图在 python 3 中获取所有不等于 0.000000 的列值

来自分类Dev

如何同步类python3中的所有方法?

来自分类Dev

如何从python类中的实例变量中获取所有值的列表

Related 相关文章

  1. 1

    如何在Python3中获取“旧” zip()?

  2. 2

    如何不仅获取单个记录,而且获取属于特定搜索查询的所有记录

  3. 3

    如何在Python 3中通过IP获取WhoIs信息?

  4. 4

    使用ElementTree获取python3中的所有xml属性值

  5. 5

    如何从python 3中的设置中获取列表

  6. 6

    如何检查python 3中的RLock是否被任何线程获取

  7. 7

    如何在python 3中获取子数组

  8. 8

    如何在Python中查找不属于示例的值?

  9. 9

    如何在Python中获取每个有序行的值的前3个元素

  10. 10

    Python3,列表中的元组,如何获取其中的所有值

  11. 11

    如何获取python3数据类实例的索引?

  12. 12

    如何在Python中的csv的所有列中获取特定类别的结果的datetime值?

  13. 13

    如何在pyfiglet python3中获取所有可用的字体

  14. 14

    在python中获取XML的所有相同属性值

  15. 15

    如何从python的字典列表中获取前3名名字

  16. 16

    如何获取属于div类的特定文本

  17. 17

    如何获取属于所有numpy数组的项目?

  18. 18

    如何获取属于类的个人,对象属性和数据属性,并且在sparql中具有特定的批注

  19. 19

    如何从jquery中属于同一类的成员的元素中获取所有不同的值?

  20. 20

    如何在python中以列表的形式获取类的所有属性

  21. 21

    Python 3.x-如何从文件中获取变量的内容

  22. 22

    如何获取属于特定组的成员列表

  23. 23

    如何检查python 3中的RLock是否被任何线程获取

  24. 24

    在Python 3中从子类获取父类的属性

  25. 25

    Qt:如何获取属于特定班级的所有班级

  26. 26

    如何获取网页中的所有单词 - Python3

  27. 27

    试图在 python 3 中获取所有不等于 0.000000 的列值

  28. 28

    如何同步类python3中的所有方法?

  29. 29

    如何从python类中的实例变量中获取所有值的列表

热门标签

归档