11、Python中的模块

Python中模块实际上是包含函数或者类的Python程序,对于大型程序经常将功能细化,将实现不同功能的代码放在不同的程序中实现,其他的程序以模块的形式使用细化的功能,这样便于维护和重用。

模块是包含函数和其他语句的Python脚本文件,以“.py”为后缀。

1、调用模块

python中以下面的方法导入模块或者模块中的函数

  • import 模块名
  • import 模块名 as 新名字
  • from 模块名 import 函数名

模块的调用示例:

import math
import math as myMath
from math import sqrt

print('调用math.sqrt', math.sqrt(4))
print('调用myMath.sqrt', myMath.sqrt(4))
print('调用sqrt', sqrt(4))

运行结果:
调用math.sqrt 2.0
调用myMath.sqrt 2.0
调用sqrt 2.0


2、编写自己的模块

编写自己的模块与平时写的Python程序是形同的,而模块名称就是文件名;

自定义模块示例:

# 自定义模块
# 文件名:MyPyModel.py
class MyTestModel:
    def __init__(self, value=10):
        self.value = value
    def getValue(self):
        return self.value
    def setValue(self, value):
        self.value = value
# 自定义模块的调用
import MyPyModel

test = MyPyModel.MyTestModel(20)
print(test.getValue())

运行结果:
20


3、模块的位置

  • 可以与调用模块文件同一目录
  • sys.path中的路径

添加模块路径的方法:

扫描二维码关注公众号,回复: 147265 查看本文章
import sys

print(sys.path)                     # 查看当前模块的路径列表
sys.path.append(myModelPath)        # 添加自定义模块的路径

4、__pycache__目录

在调用完自定义模块后,会生成一个名为__pycache__目录,包含一个文件MyPyModel.cpython-36.pyc
模块第一次调用后会生成字节码文件,提高程序的启动速度。

python中不会在运行脚本后将其编译成字节码文件,可以使用compile模块编译

import py_compile

py_compile.compile('G:\\work\\python\\MyTestPy.py', 'G:\\work\\python\\MyTestPy.pyc')

生成文件MyTestPy.py的字节码文件


5、其他

  • python中每一个程序都有一个__name__属性
  • 模块中__name__属性为模块名
  • 独立程序中__name__属性为__main__

示例:

# 自定义模块
# 文件名:MyPyModel.py

class MyTestModel:
    def __init__(self, value=10):
        self.value = value
    def getValue(self):
        return self.value
    def setValue(self, value):
        self.value = value

if __name__ == '__main__':
    myTest = MyTestModel('ModelTest')
    print(myTest.getValue())
# 自定义模块的调用
import MyPyModel

if __name__ == '__main__':
    test = MyPyModel.MyTestModel(20)
    print(test.getValue())

运行结果:
20

猜你喜欢

转载自blog.csdn.net/douzhq/article/details/79339508