面向对象的python中的嵌套类

我想做以下事情:


import mymodule


m = mymodule.MyModule()


m.dosth()

# Does something


m.more.domore()

# Does more

mymodule__init__.py文件如下所示:


class MyModule():

    def __init__(self):

        pass # Constructor


    def dosth(self):

        print("My module is doing something!")

    

    class more:

        def domore(self):

            print("My module is doing even more!")

但是当我运行我的脚本时,会出现 TypeError: TypeError: domore() missing 1 required positional argument: 'self。如何在more不出错的情况下从类中调用方法?


慕标5832272
浏览 85回答 2
2回答

慕森卡

此方法要么需要是静态的:class MyModule():    def __init__(self):        pass # Constructor    def dosth(self):        print("My module is doing something!")    class more:        @staticmethod        def domore():            print("My module is doing even more!")和m = MyModule()m.more.domore()# or directlyMyModule.more.domore()或者您需要more先创建一个实例:m = MyModule.more()m.domore()

largeQ

在 more 之后添加 () 为我解决了问题m.more().domore()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python