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()
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型