定义模块
定义模块其实就是创建一个.py
文件.
python之父建议的的模块命名:
公共模块: 所有的字母小写, 不同的单词之间用下划线
_
连接内部模块: 用下划线
_
开头, 其余与公共模块一样.
定义一个计算斐波那契数列前 n 项的模块
第 1 步: 创建一个文件fibo.py
, 相当于创建了一个模块fibo
.
def fib(n):
a, b = 0, 1
for i in range(n):
print(b, end=" ")
a, b = b, a + b
print()
第 2 部: 再创建一个模块demo
, 作为我们程序的入口, 这样的模块其实就是main moudle
. 在主模块内部使用我们第 1 步创建的模块.
import fibo # 导入需要的模块
print(__name__) # 当前模块直接执行, 所以当前模块就是主模块 输出__main__
# 模块名就成为了在 fibo 这个模块中定义的全局变量, 函数, 类的命名空间
print(fibo.__name__) # 输出模块名
# 调用模块内定义的函数
fibo.fib(20)
模块的细节
使用
import
加载模块的位置. 可以放在文件的任何位置, 但是建议放在文件的开始位置来加载模块. 而且一定要保证在使用模块前先加载模块首次导入模块, 会创建一个以模块名命名的命名空间. 在这个模块中定义的全局变量, 函数, 类都处于这个命名空间下
在新创建的命名空间中, 执行模块内的代码. 如果有全局变量, 函数, 类啥的都会完成定义工作. 如果有输出, 你也会立即看到结果.
使用
模块名.成员
的方式来使用模块内定义的成员:全局变量, 函数, 类模块内定义的类的使用要注意也是
模块名.类名
的方式来使用.比如模块a
中定义了一个类Person
, 则创建对象的方式:p = a.Person()