weixin_45495338 2019-09-21 21:52 采纳率: 0%
浏览 352

Python 请问有没有可能从一个类的方法到另一个类的方法再回到第一个类的同一个方法?

测试代码如下,运行会有错误。
请问怎么写才能实现从Admin.start()到Config.middle()再回到Admin.start()呢?

class Admin:

    def __init__(self, config):
        self.config = config

    def start(self):
        print('start')
        return self.config.middle()


class Config:

    def __init__(self, base_dir):
        self.base_dir = base_dir

    def middle(self):
        print('middle')
        return Admin.start(self)

def main():
    config = Config(r'C:\Users\niko\Desktop\QA\test')
    admin = Admin(config)
    admin.start()

if __name__ == "__main__":
    main()

------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-53-67a4e287e160> in <module>
     26 
     27 if __name__ == "__main__":
---> 28     main()

<ipython-input-53-67a4e287e160> in main()
     23     config = Config(r'C:\Users\peiran.peng\Desktop\QA\第三讲\test')
     24     admin = Admin(config)
---> 25     admin.start()
     26 
     27 if __name__ == "__main__":

<ipython-input-53-67a4e287e160> in start(self)
      6     def start(self):
      7         print('start')
----> 8         return self.config.middle()
      9 
     10     def end(self):

<ipython-input-53-67a4e287e160> in middle(self)
     18     def middle(self):
     19         print('middle')
---> 20         return Admin.start(self)
     21 
     22 def main():

<ipython-input-53-67a4e287e160> in start(self)
      6     def start(self):
      7         print('start')
----> 8         return self.config.middle()
      9 
     10     def end(self):

AttributeError: 'Config' object has no attribute 'config'
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-09-21 23:47
    关注
    # -*- coding: UTF-8 -*-
    class Admin:
    
        def __init__(self, config):
            self.config = config
    
        def start(self):
            print('start')
            self.config.middle(self)
            print('continue start')
    
    class Config:
    
        def __init__(self, base_dir):
            self.base_dir = base_dir
    
        def middle(self, admin):
            print('middle')
    
    def main():
        config = Config(r'C:\Users\niko\Desktop\QA\test')
        admin = Admin(config)
        admin.start()
    
    if __name__ == "__main__":
        main()
    
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站