模块
1 模块简介
- 模块化是将一个完整的程序分解面一个个小的模块
- 通过模块的组合来搭建一个完整的程序
- 模块化的优点
- 方便开发、维护
- 可以复用
2 模块的创建
-
在python中一个py文件就是一个模块
-
在一个模块中引入外部模块 import 模块名(模块名就是py文件)
-
可以引入同一个模块多次,但是模块的实例只会创建一次
-
# test.py print('这是我的第一个模块') # main.py import test import test import test # 调用了三次,只执行了一次 这是我的第一个模块 print(test) # <module 'test' from '/study/python3.8.3/python基础/test.py'>
-
-
Import 模块名 as 模块别名
-
# test.py print('这是我的第一个模块') # main.py import test as t print(t) # 这是我的第一个模块 # <module 'test' from '/study/python3.8.3/python基础/test.py'>
-
-
在一个模块内部都有一个__name__.通过它可以获取模块的名字
-
如果py文件直接运行时,那么__name__默认等于字符串’main’.
-
__name__属性值为__main__的模块是主模块。一个程序只有一个主模块
-
# test.py print(__name__) # __main__ # main.py import test print(__name__) # test # __main__
-
3 模块的使用
-
访问模块的变量 语法: 模块名.变量名
-
# test.py a = 1 b = 2 # main.py import test print(test.a, test.b) # 1 2
-
-
访问模块的函数 语法: 模块名.函数名
-
# test.py def test1(): print('test1') def test2(): print('test2') # main.py import test test.test1() test.test2() # test1 # test2
-
-
访问模块的对象 语法: 模块名.对象名
-
# test.py class Person: def __init__(self): self.name = '老大' # main.py import test p = test.Person() print(p.name) # 老大
-
-
引入模块部分内容 语法: from 模块名 import 变量,变量,变量。。
-
# test.py a = 10 def test1(): print('test1') class Person: def __init__(self): self.name = '老大' # main.py from test import a,test1,Person print(a) test1() p = Person() print(p.name) # 10 # test1 # 老大
-
-
取别名 语法: from 模块名 import 变量 as 别名
-
# test.py def test1(): print('test1') # main.py from test import test1 as new_test1 def test1(): print('主模块中的test1') test1() # 主模块中的test1 new_test1() # test1
-
-
不希望引用的.py文件(模块)执行命令 有问题?
-
# test.py def test1(): print('test1') test1() if __name__ == '__main__': test1() # main.py import test # test1
-