首先,如果我已经或将要混淆对象、类、属性、父项、子项等术语,我将向您道歉。这个问题与类继承无关。在
在我的主类(这里称为parent)中,我调用一个函数,该函数返回一个对象(这里称为child)并将其作为属性分配给parent。现在可以像往常一样通过父级.子级子属性通过parent.child.attribute. 在
我现在的目标是找到一种方法,将子对象的所有属性作为父对象的属性进行访问。本质上,要将所有这些属性提升一级。在
直观地说,一种解决方案是通过child.__dict__
(或类似的方法)迭代子对象的所有属性,然后在父对象中动态创建与检索到的属性同名的属性。
然而,这似乎是相当低效的,我读到,动态创建变量是要避免的,如果可能的话。在
原来
def stub_that_returns_object():
return Child()
class Parent():
def __init__(self):
self.child = stub_that_returns_object()
class Child():
def __init__(self):
self.somestr= "foo"
self.someint = 42
self.someobj = object()
p = Parent()
print(p.child.somestr)
我现在想要的是一些聪明的方法来调用,然后是不变的(!)stub_that_返回_object“函数,但是我不想使用子对象,而是希望能够访问
^{pr2}$……等等
我希望我有点明白了。子对象在提升其所有属性的过程中可能会被删除。在
谢谢你!在
如果我理解正确,您希望从父类访问子属性。在
可以通过在父类中使用返回子类属性的方法来实现:
另一方面,如果希望父类拥有子类的属性,也可以为父类指定相同的属性,因为
相关问题 更多 >
编程相关推荐