我一直在寻找答案,但没有运气。我需要有一个子类访问其父类中属性的值。如何从Python中的私有类继承父类属性?
下面是一个例子:
class myclass:
def __init__(self):
class __firstinternal__:
def __init__(self):
self.second = __secondinternal__()
class __secondinternal__:
def __init__(self):
self.var = myclass.getString()
def getString(self):
return "something"
self.internal = __firstinternal__()
print self.internal.second.var
c = myclass()
Traceback (most recent call last):
File "./inheritest.py", line 19, in <module>
c = myclass()
File "./inheritest.py", line 15, in __init__
self.internal = __firstinternal__()
File "./inheritest.py", line 7, in __init__
self.second = __secondinternal__()
File "./inheritest.py", line 11, in __init__
self.anothervar = myclass.getString()
AttributeError: class myclass has no attribute 'getString'
换句话说,我需要secondinternal继承方法的getString()从父MyClass的。
我发现如何做到这一点,当类不是一个孩子,但我想保持这两个类是私人的。
任何想法?
在此先感谢!
您的代码没有意义。在'__init__'方法中定义这些类将不会执行任何操作;当方法结束执行时,它们会消失。你有可能在你的代码中搞砸缩进吗?你是否试图将类设置为外部类的属性?另外,你为什么使用双下划线? – BrenBarn 2012-07-22 19:27:52
XY。描述你试图解决的问题,而不是想象中的愚蠢解决方案。 – 2012-07-22 19:30:21
只要子类使用自己的方法,代码就可以完美地工作。我的问题是只有当我需要使用父类的方法。关于双下划线 - 嗯,我认为这是一个孩子班级应该如何定义的... – user1544357 2012-07-22 19:32:20