通过类中特定对象的名称访问所有变量

用户名

我有两个python类:

class A:
    def __init__(self, param1):
        self.param1 = param1

class B:
    def __init__(self, a):
        self.a = a

现在,我有一个B实例,需要访问param1,我可以编写b.a.param1但目标是忽略“ a”部分,因此请使用来访问此参数b.param1我可以向类B添加属性,但是我正在寻找通用解决方案-当A类的变量很多时。可能吗?会是干净的解决方案吗?

安德烈·F

这不是最优雅的选择,并且可能是一个坏习惯,但是您可以将所有属性复制abusinggetattr属性setattr

import inspect

class A:
    def __init__(self, param1):
        self.param1 = param1

class B:
    def __init__(self, a):
        self.a = a
        variables = [i for i in dir(a) if not inspect.ismethod(i) and i[:2] != '__']
        for var in variables:
            setattr(self, var, getattr(a, var))

这样,您可以a直接访问的属性:

a = A(1)
b = B(a)
b.param1

它将返回

1个

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java:如何通过存储在变量中的名称访问类的字段?

Java:如何通过保存在变量中的名称访问类?

如何获取在类的方法中定义的所有变量的名称

创建可通过PrestaShop中的所有模板访问的变量

JavaScript通过类名称获取所有元素,而排除特定类?

通过类级别访问私有变量。

访问所有类的对象数组

如何使用变量的类名访问PHP中带有名称空间的类常量?

如何获取当前名称范围中的所有类,变量,函数名称?

如何通过存储在字符串中的名称访问类的对象?

Java:从2个不同的类传递2个对象并访问它们的所有变量

访问R中的嵌套列表中具有特定名称的所有列

类中的访问结构对象变量-C ++

有没有办法在c#中通过名称访问变量的引用

通过变量访问类

Python3 OOP:选择不带变量的特定类的所有对象

静态变量java - 数组列表中的所有对象都具有相同的名称?

如何通过对象字面量的变量访问类?

如何在R中的.GlobalEnv中访问类data.frame的所有对象

检查对象是否具有名称中具有特定编号的类

如何通过类名称获取在香草JavaScript中动态附加的所有选择器?

C#如何从子类中读取父类和子类所有变量的名称

通过类与已存储在变量中的对象一起查找特定元素

通过类名称在Java中动态创建对象并通过使用带有数据的列表来设置类字段

如何通过 Django 中的外键列出与特定对象关联的所有对象?

对象是类中的变量类型还是变量名称?

我如何从主程序导入的类中访问所有变量?

在单独的类中访问私有变量?

如何使用jQuery将具有特定类的所有元素的内容放入变量中