文章目录
- 1.什么是模块
- 2.导入模块
- 3.__name__='__main__'
- 4.搜索路径
1.什么是模块
-
容器 -> 数据的封装
-
函数 -> 语句的封装
-
类 -> 方法和属性的封装
-
模块 -> 模块就是程序,模块就是.py文件
-
导入hello模块,且使用hello命名空间的hi()函数
(1)hello.py模块的创建
注意模块与调用的程序要在同一个文件夹下面
import的时候直接写名字就行了,不用加上.py,eg:hello.py,hello就是模块名
(2)执行
-
命名空间
在Python中,每个模块都会维护一个独立的命名空间,我们应该将模块名加上,才能够正常使用模块中的函数。
2.导入模块
- (1)import导入模块
TemperatureConversion模块
- (2)from 模块名 import 函数名(不推荐使用)
会导入整个命名空间
- (3)import 模块名 as 新名字(推荐使用)
3.name=‘main’
-
文件架构
-
TemperatureConversion.py文件
将测试代码写在了TemperatureConversion.py文件中
在calc.py中调用TemperatureConversion模块,这种方式会导致将python中的测试代码也打印出来了
-
为了解决上面的问题,需要让python知道:该模块是作为程序运行,还是导入到其他程序中,所以使用了__name__变量。
在主程序中使用__name__变量,得到的是__main__变量。
tc.__name__得到的是模块的名字。
所以修改TemperatureConversion.py文件。
若__name__等于模块名的话,说明该模块是被作为模块导入的。
若__name__等于__main__的话,说明该模块是主程序。
在calc.py中调用TemperatureConversion模块,其结果
4.搜索路径
- 搜索路径(系统会首先搜索的路径)
>>> import sys
>>> sys.path
['D:\\python3.3.2\\小甲鱼python\\python程序\\第五十节课\\Temperature',
'D:\\python3.3.2\\Lib\\idlelib', 'C:\\windows\\system32\\python33.zip',
'D:\\python3.3.2\\DLLs', 'D:\\python3.3.2\\lib', 'D:\\python3.3.2',
'D:\\python3.3.2\\lib\\site-packages']推荐放到:D:\\python3.3.2\\lib\\site-packages
- 添加搜索路径:
>>> import TemperatureConversion
Traceback (most recent call last):File "<pyshell#0>", line 1, in <module>import TemperatureConversion
ImportError: No module named 'TemperatureConversion'>>> import sys
>>> sys.path.append("D:\\python3.3.2\WODE\Temperature")
>>> sys.path
['', 'D:\\python3.3.2\\Lib\\idlelib', 'C:\\windows\\system32\\python33.zip',
'D:\\python3.3.2\\DLLs', 'D:\\python3.3.2\\lib', 'D:\\python3.3.2',
'D:\\python3.3.2\\lib\\site-packages', 'D:\\python3.3.2\\WODE\\Temperature']
>>> import TemperatureConversion
>>> TemperatureConversion.f2c(59)
15.0
-
(package)
(1)创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字;
(2)在文件夹中创建一个__init__.py的模块文件,内容可以为空;
(3)将相关的模块放入文件夹中 -
eg:制作包并导入包
-
参考:小甲鱼零基础入门学习python笔记,第五十课:模块:模块就是程序,第五十一课:模块:name=‘main’、搜索路径和包