python基础学习day11

模块

模块化编程的流程

模块化编程的一般流程:

1. 设计 API,进行功能描述。

2. 编码实现 API 中描述的功能。

3. 在模块中编写测试代码,并消除全局代码。

4. 使用私有函数实现不被外部客户端调用的模块函数。

help()查看 math 模块的 API

每个模块都有一个名称,通过特殊变量__name__可以获取模块的名称。

仅有一个例外,就是当一个模块被作为程序入口时(主 程序、交互式提示符下),它的__name__的值为“__main__”。(就是自己调用自己)

通过 __doc__可以获得文档字符串的内容。

import 语句导入

import 语句的基本语法格式如下:

import 模块名 #导入一个模块

import 模块 1,模块 2… #导入多个模块

import 模块名 as 模块别名 #导入模块并使用

from…import 导入

from 模块名 import 成员 1,成员 2,…

from 模块名 import *

import 导入的是模块。from...import 导入的是模块中的一个函数/一个类。

__import__()动态导入

s = "math"   #字符串

m = __import__(s) #导入后生成的模块对象的引用给变量 m

print(m.pi)

一个模块无论导入多少次,这个模块在整个解释器进程内有且仅有一个实例对象

重新加载 有时候我们确实需要重新加载一个模块,这时候可以使用:importlib.reload() 方法:

1、import a.aa.module_AA

        在使用时,必须加完整名称来引用,比如:a.aa.module_AA.fun_AA()

2. from a.aa import module_AA

        在使用时,直接可以使用模块名。 比如:module_AA.fun_AA()

3. from a.aa.module_AA import fun_AA 直接导入函数

        在使用时,直接可以使用函数名。 比如:fun_AA()

导入包的本质其实是“导入了包的__init__.py”文件。

包的本质还是模块

用*导入包

        import * 这样的语句理论上是希望文件系统找出包中所有的子模块,然后导入它们。 这可能会花长时间等。Python 解决方案是提供一个明确的包索引。

        这个索引由 __init__.py 定义 __all__ 变量,该变量为一列表,如上例 a 包下的 __init__.py 中,可定义 __all__ = ["module_A","module_A2"]

        这意味着, from sound.effects import * 会从对应的包中导入以上两个子模块

包内引用

sys.path 和模块搜索路径

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值