模块的制作
建立一个普通的python文件,写一些moudelTest方法
# 模块的制作说明
# __all__魔术变量的作用是 如果在一个文件中存在 __all__变量,那么也就意味着这个变量中的元素
# 会被from XXX import *时会被导入,对于import 方式来讲 无所谓 有没有 都可以全部的引用
__all__=['add','diff']
def add(x,y):
'''
普通的函数
:param x:
:param y:
:return:
'''
return x+y
def diff(x,y):
return x-y
def printInfo():
return '这是我自定义模块里面的方法'
print('----------')
在随便建立一个代码import以上代码
import t
print(t.add(3,2))
结果:
不难发现虽然只调用了add方法,但是依然打出了‘-----------’
因为在import时被import的代码会被全部执行,要想打印出‘------------’
可以使用魔术方法__name__
加入:
if __name__=='__main__':
res=add(2,5)
print('测试模块, %s'%res)
print('模块__name__变量=%s'%__name__)
pass
若import则不会调用里面的代码
只能调用moudelTest时出现
*
import xxx as x
将导入的模块重新命名,使用后xxx无法使用,只能用x
all
、all 的作用,如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,会被from xxx import * 时导入,若all里没有写入的方法,则用from xxx import * 无法使用方法,但可以import使用
模块的发布
1.将写好的包放到一个jiaoxue/目录下
2.在jiaoxue/目录下创建一个文件setup.py文件
3.文件里写入下面代码
from distutils.core import setup
# name 模块名称
# version 版本号
# description 描述
# author 作者
# py_modules 要发布的内容
setup(name="my_module", version="1.0", description="my module",
author="lilei", py_modules=['test1.A', 'test1.B', 'test2.C', 'test2.D'])
4.创建模块:python setup.py build(点开它输入)
5.python setup.py sdist(生成压缩包)