python全栈脱产第16天------模块循环导入问题、区分python文件类型的途径、文件的搜索路径、软件开发的目录规范

一、模块的循环导入问题

  就是执行文件中被导入文件同时又导入了另一个文件,而调用的变量在调用时又没有被定义

  解决方案一:把循环导入的语句放到名字定义的后面

  解决方案二:将循环导入语句放到函数中去

二、区分python文件的两种途径

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

  当文件被导入时:__name__=='模块名'

三、文件的搜索路径

  优先级:1.内存中加载过的

      2.内置模块

      3.sys.path(第一个值是当前执行文件所在的文件夹,且所有被导入的模块参照环境变量sys.path都是以执行文件为准的)

        方案一:import sys

            sys.path.append(r'文件路径')

            import 被导入文件名

        方案二:from 文件名 import 被导入文件名

  绝对导入:以执行文件的sys.path为起始点开始导入,称之为绝对导入

      优点:执行文件与被导入文件的模块中都可以使用

      缺点:所有导入都是以sys.path为起始点,导入麻烦

  相对导入:参照当前所在文件的文件夹为起始点开始查找,称之为相对导入

      符号:.表示当前所在的文件夹,..表示上一级文件夹,...表示上上级文件夹

      优点:导入更简单

      缺点:只能在被导入的模块中使用,不能再执行文件中使用

四、软件开发的目录规范

  程序

  |

  ----bin

  |  |

  |  ----start.py

  |

  ----conf

  |  |

  |  ----setting.py

  |

  ----core

  |  |

  |  ----src.py

  |    |

  |    ----def register():

  |        print(‘注册’)

  |      def login():

  |        print('登录')

  |     def shopping():

  |        print('购物')

  |     def pay():

  |        print('支付')

  |     def transfer():

  |        print('转账')

  |     def run():

  |        print('运行')

  |

  ----db

  |  |

  |  ----db.txt

  |

  ----lib

  |  |

  |  ----common.py

  |

  ----log

  |  |

  |  ----transcation.log

  | 

  Readme

原文地址:https://www.cnblogs.com/zhouyi0316/p/9445890.html