Python 知识量:10 - 41 - 150
Python模块是一系列相关的函数和变量的组合。创建模块时,可创建一个.py文件,其中包含用于完成某项任务的函数。模块与普通程序的最大区别是,模块按照某种用途创建,专门用于实现某项任务,可以作为工具箱重复使用,类似于内置函数。
以下是一个用于计算显示乘法表的模块:
# multiplication.py """The program of calculating multiplication.""" def modelOne(num): for row in range(1,num+1): for col in range(1,row+1): c=row*col if c<10: print(' ',end='') #用于列对齐 print(str(col)+'*'+str(row)+'='+str(c),' ',end='') print() #用于换行 def modelTwo(num): for row in range(1,num+1): for col in range(1,num+1): c=row*col if c<10: print(' ',end='') #用于列对齐 print(str(col)+'*'+str(row)+'='+str(c),' ',end='') print() #用于换行
运行结果为:
>>> ================= RESTART: D:\PythonTestFile\multiplication.py ================= >>> import multiplication >>> dir(multiplication) ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'modelOne', 'modelTwo'] >>> print(multiplication.__doc__) The program of calculating multiplication. >>> multiplication.modelOne(9) 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 >>> multiplication.modelTwo(9) 1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 6*1=6 7*1=7 8*1=8 9*1=9 1*2=2 2*2=4 3*2=6 4*2=8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18 1*3=3 2*3=6 3*3=9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27 1*4=4 2*4=8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 >>> multiplication.modelOne(6) 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 >>> multiplication.modelTwo(6) 1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 6*1=6 1*2=2 2*2=4 3*2=6 4*2=8 5*2=10 6*2=12 1*3=3 2*3=6 3*3=9 4*3=12 5*3=15 6*3=18 1*4=4 2*4=8 3*4=12 4*4=16 5*4=20 6*4=24 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
以上调用模块的方式与调用内置函数类似。
在import模块文件时,会生成相应的.pyc文件,.pyc文件即Python编译的目标代码文件,这是为了加快下次执行文件的速度。运行python文件的时候,程序会首先查看是否有.pyc文件,如果有的话,而且.py文件的修改时间和.pyc文件的修改时间一样,就会读取.pyc文件,否则,Python就会读取.py文件。
在使用模块时涉及到命名空间的概念。模块的名称代表了一个命名空间,要使用模块中的函数和变量,必须使用import语句,并以命名空间名称(模块名)为前缀。
命名空间避免了函数名或变量名重复时的冲突问题。如果有两个同名的函数,它们功能完全不同,只是名称相同,只要它们分别位于不同的模块中,也不会有任何问题。因为,在实际调用时,需要通过import语句引入模块,而且需要使用命名空间名称,即模块名称作为函数的前缀,例如:modular1.want()、modular2.want()。
虽然命名空间可以避免冲突,但是也要正确的使用模块,如果使用from ... import *语句,直接将模块所有内容导入当前命名空间,调用函数时不再需要前缀,则很可能会出现重名覆盖问题,因此,要尽量避免使用from ... import *语句。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6