你好,我是在学python的小潭。通过昨天的文章21-python中类的赋值和深浅拷贝我们熟悉了python中的类的赋值和深浅拷贝的知识,今天我们将学习下python中模块。

(一)模块定义

    模块,在python中一个扩展名为.py的文件就是一个模块。一个模块中可以包含n多个函数[python程序->模块->函数/类/语句]。

使用模块的好处:

  • 方便其他程序和脚本的导入和使用
  • 避免函数名和变量名冲突
  • 提高代码的可维护性
  • 提高代码的可重用性

代码示例:

# 模块中包含函数def fun():    pass# 模块中可以包含多个函数def fun2():    pass# 模块中可以包含类class Student:    native_place = 'China'  # 类中可以包含类属性    def eat(self, name, age):  # 类中可以包含实例方法        self.name = name        self.age = age    @classmethod  # 类中可以包含类方法    def cm(cls):        pass    @staticmethod  # 类中可以包含静态方法    def sm():        pass# 模块中可以包含变量a = 11b = 22

(二)自定义模块

    创建模块,新建一个.py文件,名称尽量不要与python自带的标准模块名称相同。

    导入模块方法:

import 模块名称 [as 别名]或from 模块名称 import 函数/变量/类

    自定义模块需要在对应文件夹下右键选择Mark Directory as-> Sources Root,使系统识别到自定义模块所在位置,随后可使用以上两种导入方法进行模块导入并使用。

bat处理python缺少包_代码示例

代码示例:

import mathprint(id(math))print(type(math))print(math.pi)print('--------------')print(dir(math))print(math.pow(2, 3), type(math.pow(2, 3)))print(math.ceil(9.099))print(math.floor(10.001))

结果输出:

1913532627600<class 'module'>3.141592653589793--------------['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']8.0 <class 'float'>1010

(三)以主程序的形式执行

    在每个模块的定义中,都包含一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他模块中执行,那么可能是在解释器的顶级模块中执行,其中顶级模块的__name__变量值为__main__。

可使用以下代码进行判断:

if __name__ == '__main' :    pass

代码示例:

# 模块1 demo1.pydef add(a, b):    return a + bprint(add(10, 11))# 模块2 demo2.pyfrom demo3 import addprint(add(100, 200))

结果输出:

21300

代码示例2:

def add(a, b):    return a + b# print(add(10, 11))if __name__ == '__main__':    print(add(10, 11))

结果输出:

300

(四)Python中的包

    包是一个分层次的目录结构,它将一组功能相近的模块z组织在一个目录下[python程序->n多个包->n多个模块]。

  • 作用:代码规范,另避免模块名称冲突。
  • 包和目录的区别:
    包含__init__.py文件的目录称为包,而目录中通常不包含__init__.py文件
  • 包的导入:import 包名.模块名

包结构:

bat处理python缺少包_bat处理python缺少包_02

代码示例:

# module_A.pya = 30# demo1.pyfrom package.module_A import aprint(a)

结果输出:

30

Python中常用的内置模块:

模块名

描述

sys

与python解释器及其环境操作相关的标准库

time

提供与时间相关的各种函数的标准库

os

提供了访问操作系统服务功能的标准库

calendar

提供与日期相关的各种函数的标准库

urllib

用于读取来自网络服务器的数据标准库

json

用于使用JSON序列化和反序列化对象

re

用于在字符串中执行正则表达式匹配和替换

math

提供标准算术运算函数的标准库

decimal

用于进行精确控制运算精度,有效位数和四舍五入操作的十进制运算

logging

提供了灵活的记录事件,错误,警告和调试信息等日志信息的功能

    以上是python中模块的简单介绍,鉴于篇幅原因,我们将在下一期继续学习python中常用内置模块知识,以及第三方模块的安装和使用,敬请期待。

下期预告:python中第三方模块的安装和使用