关于python:如何在类中进行嵌套类和继承

How to do nested class and inherit inside the class

我试了好几次,但没能使下面的代码工作

提前感谢您的帮助/建议

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class A(object):
    def __init__(self,x,y,z):
        self.c=C(x,y,z)
    def getxyz(self):
        return self.c.getxyz()

    class B(object):
        def __init__(self,x,y):
            self.x=x
            self.y=y
        def getxy(self):
            return self.x, self.y
    class C(B):
        def __init__(self,x,y,z):
            super(C,self).__init__(x,y)
            #self.x,self.y=x,y
            self.z=z
        def getxyz(self):
            (x,y)=self.getxy()
            return x,y,self.z
a=A(1,2,3)
a.getxyz()


我不完全确定你为什么要嵌套类(很少是你真正想做的),但是行

1
self.c = C(x,y,z)

几乎可以肯定是这里的问题。除非我不明白你想完成什么(很可能是),否则你应该能够做到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class A(object):

    def __init__(self, x, y, z):
        self.c = self.C(x,y,z)

    def getxyz(self):
        return self.c.getxyz()

    class B(object):

        def __init__(self, x, y):
            self.x = x
            self.y = y

        def getxy(self):
            return self.x, self.y

    class C(B):

        def __init__(self, x, y, z):
            super(A.C, self).__init__(x,y)
            self.z = z

        def getxyz(self):
            (x,y) = self.getxy()
            return x, y, self.z