• 学习日记0808


    1 模块的循环导入问题

      出现的问题

       m1.py

       print('m1')

       from m2 import y

       x='m1'

       

       m2.py

       print('m2')

       from m1 import x

       y='m2'

        

       run.py

       import m1

      解决方案一:

      将导入的代码放到程序的最后面

      

       m1.py

       print('m1')

       x='m1'

          from m2 import y

       

       m2.py

       print('m2')

       y='m2'

       from m1 import x

        

       run.py

       import m1

      解决方案二:

       将导入的模块的代码放到函数中

        

       m1.py

       print('m1')

       def f1():

        print('执行了f1')

         from m2 import y

       x='m1'

       

       m2.py

       print('m2')

       def f1():

        print('执行了f2')

         from m1 import x

       y='m2'

        

       run.py

       import m1

       m1.f1

       m1.x

       m1.y

    2 区分python文件两种用途

      当文件被执行的时候:__name__='__main__'

      但文件被调用的时候:__name__='模块名'

      在自定义模块的最后加

      if __name__ = '__main__':

        功能名()

        功能名()

    3 模块的搜索路径

      模块搜索路径的优先级:

      1 内存中已经加载的

      2 内置的

      3 sys.path-------------第一个值是当前执行文件的所在目录

      调用模块时如何查找路径

      绝对导入

      方案一:

        import sys  

        sys.path.append('被调用模块的路径')

      方案二:

        from  第一级文件夹.第二级文件夹......... import 模块名

      优点:执行文件和自定义模块都可以使用

      缺点:必须以执行文件为准,导入麻烦

      相对导入

      参照当前文件为起始路径开始查找

      符号 . 表示当前文件夹 ..表示上级文件夹 ...表示上级的上级文件夹

      优点:导入简单

      缺点(也是注意点):相对导入只能在模块中使用,被执行文件中不能使用相对导入

    软件开发的目录规范:

      ATM

        bin  存放可执行文件(整个程序的入口)

        conf 配置文件

        lib  自定义模块文件

        core 逻辑文件

        log  日志文件

        db  数据库文件

        Readme  软件的说明

  • 相关阅读:
    Could not load file or assembly 'System.Core, Version=2.0.5.0
    r 数据分组处理
    r函数知识总结
    R-Sys.time计算程序运行时间
    R语言包_dplyr_1
    R语言系列:生成数据
    R语言-分组统计
    导数——平均变化率与瞬时变化率
    梯度下降法
    梯度
  • 原文地址:https://www.cnblogs.com/jianhaozhou/p/9442819.html
Copyright © 2020-2023  润新知