前言
1.模块
模块的载入
1.模快
# 全局变量
title = '模块1'
# 函数
def say_hello():
print("我是 %s" % title)
# 类
class Dog(object):
pass
2.导入模块
import hm_01测试
hm_01测试.say_hello()
dog = hm_01测试.Dog
当模块名称,太长的时候,可以用as 减少让自己搞
import hm_01测试 as DogM
DogM.say_hello() # 使用了模块名.调用
dog = DogM.Dog
导入方法2
from hm_01测试 import Dog
from hm_01测试 import say_hello
dog = Dog()
say_hello() # 和上面比不需要使用模块名. 调用
print(dog)
导入后不需要通过 (模块名.) 调用
当使用from impot 导入相同方法(函数),的时候,会采用第2个
1.3模块的搜索顺序
先搜索当下的
1.4原则—每一个文件都应该是可以被导入的
注意:在导入文件时,文件中 所有没有任何缩进的代码 都会被执行一遍!
#python名 hm_09___name__
print("小明开发的模块")
import hm_09___name__
print("-" * 50)
输出:
>输出:小明开发的模块
>--------------------------------------------------
解决问题:
def say_hello():
print("你好你好,我是say hello")
# 如果直接执行模块 ,永远都是__main__
# 如果需要测试模块,则增加if __name__
if __name__ == "__main__":
print(__name__)
print("小明开发的模块")
say_hello()
在自己的地方输出,print(“new”) 只输出__mian__
在别的文件里面出现,会输出这个模块的名字
import hm_09___name__
print("-" * 50)
包
得在__init__ 文件里写入
以下是__init__ 文件中的内容
# 要在外界使用 包 中的模块,需要在 __init__.py 中指定 对外界提供的模块列表
from . import send_message
from . import receive_message
只有写了 这句话,才可以使用包里的 文件内容之类的
发布模块
1)创建setup.py
在这里插入代码片
2) 构建模块
$ python3 setup.py build
3) 生成发布压缩包
$ python3 setup.py sdist
4) 解压错
$ tar -zxvf hm_message-1.0.tar.gz #解压缩
$ sudo python3 setup.py install
pip安装模块
# 将模块安装到 Python 2.x 环境
$ sudo pip install pygame
$ sudo pip uninstall pygame
# 将模块安装到 Python 3.x 环境
$ sudo pip3 install pygame
$ sudo pip3 uninstall pygame