zoukankan      html  css  js  c++  java
  • 模块和包

    模块

    import

    1. 模块就是一个.py文件
    2. 命名规则跟随变量命名规则
    3. 使用import导入
      • 找到模块
      • 创建模块的命名空间
      • 把文件中的名字都放到命名空间
    4. 模块不会被重复导入
      • sys.modules() 查看当前所有导入的模块
      • 如果当前列表中有导入模块则不继续导入
      • 如果当前列表中没有导入模块则去sys.path中去寻找
      • 找到后导入,找不到报错
    5. 导入模块就会直接执行模块内的代码
    6. 模块里的函数用模块名.函数名()调用
    7. 先导入内置函数,再导入扩展的,再导入自定义的模块

    as- 给模块起别名

    • import module as other_name

    from- 模块中导入变量名

    • from module import bianliang_name as other_name
    • from module import *导入全部变量名

    其他知识

    • __name__
      • 在本模块中执行print(__name__)返回值为__main__

      • 在其他模块中作为导入模块中时返回值为模块名

      • 因此

          if __name__ == '__main__':
          	print('执行本模块时想打印的话,作为导入模块不执行的话')
        

    • 一大堆的模块的集合
    • 把解决一类的问题模块放在同一个文件夹中,即包

    包的导入

    • import``from 包名 import 变量名

        import dir1.dir2.dir3 import name as other_name
      
    • 包的导入会自动执行__init__.py

    • 绝对路径

      • 包的导入要导入至模块所在文件夹
      • 包的导入要从模块所在当前根目录开始导入,检索时找的是根目录的名称
    • 相对路径

      • .代表当前路径
      • ..代表上级目录

    程序编写规范格式

    -bin(程序入口)
    	-start.py
    	#一般书写定式
    	import os
    	import sys
    	from core import core
    	sys.path.append(os.path.dirname(os.getcwd()))	#将当前文件所在目录的父目录写入sys.path
    	if __name__ == '__main__':
    		core.main()	#调用主函数
    		
    -conf(配置文件,给运维人员看的)
    	-config.ini
    	-my_log_setting.py
    	-settings.py
    	
    -core(核心代码)
    	-core.py
    	
    -db(数据库)
    	-alex_json
    	-egon_json
    	
    -lib(自己写的包或模块)
    	-read_ini.py
    	
    -log(日志文件)
    	-all2.log
  • 相关阅读:
    [BZOJ2555]SubString
    [十二省联考2019]字符串问题
    CF149E Martian String
    挣钱攻略——浅谈移动开发者如何盈利
    教你如何在iPhone AppStore赚钱
    java8IO工具类(java疯狂讲义3复习笔记)
    asp.net数据库连接,三层架构方法调用 (转)
    prototype.js 源码解读
    使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)(转)
    Ajax加载信息提示实例(转)
  • 原文地址:https://www.cnblogs.com/liliudong/p/9610042.html
Copyright © 2011-2022 走看看