美文网首页
python ***模块没有某模块的属性

python ***模块没有某模块的属性

作者: mutang | 来源:发表于2020-09-09 15:16 被阅读0次

    问题:如下代码,为重现问题

    class Auto:
        def __init__(self):
            self.dr = self.init_dr()
            self.speedUrl = self.getSpeedUrl()#问题
            self.logger = MyLog().getLogger()#问题
    
        def init_dr(self):
            options = webdriver.ChromeOptions()
            options.binary_location = "D:\Google\Chrome\Application\chrome.exe"
            dr = webdriver.Chrome(options=options)
            dr.maximize_window()
            dr.implicitly_wait(10)
            return dr
        def getSpeedUrl(self):
            '''可设置为显示等待'''
            self.dr.get("https://www.baidu.com")
            self.logger.info(self.dr.get_cookies())
       if __name__ == '__main__':
        url = Auto().getSpeedUrl()
        print(url)
    
    

    分析:

    1. 我反复查看代码,再debug,发现Auto.self就是没有logger
    2. 又复习一遍python 的日志模块及其封装,再做测试,结果,测试没问题,一运行这个代码还是没有日志模块
    3. 导包实在是没问题呀
    4. 为此,耗费好几天,一度想在Auto模块中写个日志代码,好气哦!谁能理解独自开发的难?

    解决:

    其实,非常简单的原因,Auto模块中在执行--init--时,开始调用函数,此时,程序还没有加载日志模块,故而,报出Auto模块没有logger的属性

    只需要,将两问题代码顺序调换,解决!

    总结:

    此问题之所以出现而我难以找到问题,哪怕debug还是不明所以,纯属是我写代码的习惯不规范导致,在初始化中,应按照不变的参数,变的参数,最后调用函数,当然,最好不要在初始化模块中调用函数。

    相关文章

      网友评论

          本文标题:python ***模块没有某模块的属性

          本文链接:https://www.haomeiwen.com/subject/gcbeektx.html