Python系统学习第十五课

模块

  • 一个模块就是一个包含pyho代码的文件,后缀名hi.py就可以,模块就是一个python文件
  • 为什么要用模块?
    • 程序太大,编写维护非常不方便,需要拆分
    • 模块可以增加代码重复利用的方式
    • 当命名空间使用避免冲突
  • 如何定义模块
    • 就是一个普通文件,任何代码可以直接书写
    • 不过根据模块的规范,最好在模块中编写以下内容。
      • 函数(单一功能)
      • 类(相似功能的组合,或者类似业务模块)
      • 测试代码
  • 如何使用模块
    • 模块直接导入,import模块之后,运行的时候直接就在程序中执行了,相当于直接将模块的代码直接粘贴到了当前代码的前边
    • 使用类:模块名.类名
    • 使用函数: 模块名.函数名
    • import 模块 as 别名
    • from 模块名 import 函数名/类名(此时就不用在程序中使用模块名为前缀了)
    • 导入所有:from 模块名 import *(就不用了增加模块名字作为前缀了)

if name == 'main’的使用

  • 可以有效避免模块代码被导入的时候被动执行的问题
  • 建议所有程序的入口都以此代码为入口

模块的搜索路径和存储

  • 什么是模块的搜索路径
    • 加载模块的时候,系统会在哪些地方寻找此模块
  • 系统默认的模块搜索路径
  • import sys
  • sys.path #属性可以获取路径

  • 包是一种组织管理代码的方式,包里边存放的是模块

  • 用于将模块包含在一起的文件夹就是包

  • 包的导入操作

    • import 包的名字

      • 直接导入一个包,可以使用__init__.py中的内容
      • 使用方式是:
        包名.函数名
        包名.类名.函数名
    • import 包名 as 别名

      • 注意:这种做法是默认对__init__.py内容的导入
    • import 包名.模块名

      • 包名.模块名.函数名/类名
    • from … import 导入

      • from 包 import 模块1,模块2,模块3.。。。。

      • 这种方法不执行’init’的内容

      • from 包 import *

      • 导入当前包里’init.py’文件里所有的函数和类,但是不导入包里的其他模块。

      • 使用方法

        • 函数名()
        • 类名().函数名()
        • 类名()
      • from 包名.模块名 import *

        • 导入包中指定模块的所有内容
        • 使用方法
          函数名()
          类名.函数名()
  • 在开发环境中经常会用到其他模块,可以在当前包中直接导入其他模块的内容

    • import 完整的包或者模块的路径
  • init’的用法

    • 在使用from 包名 import * 的时候可以导入的内容
    • all.py’中如果文件为空,或者没有‘all’,那么只可以把‘init’中的内容导入
    • init’如果设置了“all”的值,那么则按照‘all’指定的子包或者模块进行,如此则不会载入‘init’中的内容
    • all = ['模块1’,‘模块2’,‘模块3’。。。]

命名空间

  • 用于区分不同位置不同功能,但是相同名称的函数或者变量的一个特定前缀
  • 作用是防止命名冲突
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值