python中另一个类里面的类

时间:2017-01-02 13:04:43

标签: python class oop methods

我不知道如何获得输出"两个" 请帮助

class Main:
    class main2():
        def two(self):
            print 'two'
    def one(self):
        pass
        #self.main2.two()




boo = Main()
boo.one()

4 个答案:

答案 0 :(得分:2)

因为two是一个成员函数(作为第一个参数有一个selfMain类的实例可能需要一个内部类的实例作为成员:

class Main:
    class main2():
        def two(self):
            print('two')
    def one(self):
        self.m2.two()
    def __init__(self):
        # here the instance gets an instance of the class Main.main2
        # as member
        self.m2 = Main.main2()


boo = Main()
boo.one()
# boo.m2.two()

或者您直接创建内部类的实例:

m2 = Main.main2()
m2.two()

答案 1 :(得分:-1)

Main.main2().two()

主。 - 对于main2是Main中定义的类,因此是该类的属性

main2() - 实例化子类

两()执行方法

答案 2 :(得分:-1)

你刚刚错过了一个声明,你还没有调用这个方法。

outer = Main()
inner = outer.main2()
# You can now call the method 
inner.two()

答案 3 :(得分:-1)

以下行打印输出:

boo.main2().two()