模块和包

模块

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值