为了账号安全,请及时绑定邮箱和手机立即绑定

面向对象的python中的嵌套类

面向对象的python中的嵌套类

慕标5832272 2023-03-08 15:03:13
我想做以下事情:import mymodulem = mymodule.MyModule()m.dosth()# Does somethingm.more.domore()# Does moremymodule__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不出错的情况下从类中调用方法?
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

此方法要么需要是静态的:


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 directly

MyModule.more.domore()

或者您需要more先创建一个实例:


m = MyModule.more()

m.domore()


查看完整回答
反对 回复 2023-03-08
?
largeQ

TA贡献2039条经验 获得超7个赞

在 more 之后添加 () 为我解决了问题

m.more().domore()


查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信