Python提供了一组技术,可以很容易的实现共享,这包括模块和一些发布工具:
①模块允许你合理组织代码来实现最优共享
②发布工具允许你向全世界共享你的模块
1、函数转换为模块
模块就是一个包含Python代码的文本文件。对模块的主要需求就是文件名以.py结尾,这是Python扩展名。要把你的函数转换为模块,需要把代码保存到适当命名的文件中:
def print_lol(the_list):
for value in the_list:
if(isinstance(value,list)):
print_lol(value)
else:
print value
File->new File->把函数代码复制到里面->保存(nester.py)
调用该函数:
File->open…..->F5
2、注释代码
①在Python中常用的注释是三重引号来建立多行注释。如果使用了一个三重引号,而没有将它赋至一个变量,三重引号之间的所有内容都被成为一个注释。
②可以用#来注释
tip:
①怎么知道python模块在计算机的什么地方?
在IDLE提示框中输入:
import sys;sys.path(放到一行上)
②可以在Python程序中使用;把多行代码放到一行上?
可以,但是建议最好不要这么做,最好每个Python语句各占一行,这样代码会更易读。
3、准备发布
在Python中,所谓的“发布”(distribution)是指一个文件集合,这些文件联合在一起,允许你构建,打包和发布你的模块。
①首先为模块创建一个文件夹
创建文件夹后,将nester.py文件复制到该文件夹下,为简单起见,改文件夹名称为nester
②在新文件夹中为模块创建一个setup.py文件
这个文件包含有关发布的元数据,编辑这个文件,向文件中添加内容:
from distutils.core import setup//从python发布工具导入setup函数
setup(
name='nester',
version='1.0.0',
py_modules=['nester'],
author='hhpython',
author_email='1984705059@qq.com',
url='http://www.headfirstlabs.com',
desciption='A simple printer of nested lists'
)
③构建一个发布文件
在nester文件夹下打开一个终端(按住shif键,选中nester文件夹,右键即可),键入一行命令:E:\toolsroot\python\python.exe setup.py sdist
④将发布安装到你的Python本地副本中
仍在终端窗口中键入以下命令:
E:\toolsroot\python\python.exe setup.py install
4、发布速览
利用Python的发布工具,你的模块已经转换为一个发布,并且安装到你的python本地副本上。
开始时只有一个函数,这个函数输入到一个名为nester.py文本中,就创建了一个模块。然后创建一个nester文件夹来存放这个模块。通过在这个文件夹下添加setup.py文件,从而能构建和安装你的发布,这会生成额外的文件,并在nester文件夹中出现2个新的文件夹,这些文件夹都是由发布工具为你创建的。
5、导入模块并使用
>>> import nester
>>> h_list=['Palin','Cleese','Idle','Jones','Gilliam','Chapman']
>>> nester.print_lol(h_list)
输出结果:
Palin
Cleese
Idle
Jones
Gilliam
Chapman
tip:
使用普通的import语句时,如import nester,这会指示python解释器允许你使用命名空间限定来访问nester函数,不过,还可以更为特定。如果使用from nester import print_lol ,会把指定的函数增加到当前命名空间中,这样一来就不用使用命名空间来限定。不过,需要注意,如果你的当前命名空间已经定义了一个名称为print_lol的函数,这个特定 import语句会用导入的函数覆盖你自己定义的的函数,而这可能并不是你之前希望的行为。
6、Python的模块实现命名空间
python中的代码都与一个命名空间关联,主python程序中的代码与一个名为_ mian _的命名空间关联。将代码放在与其关联的模块中时,Python会自动创建一个与其模块同名的命名空间。
7、注册Pypi网站
https://pypi.python.org/pypi
8、向Pypi上传代码(windows系统)
还是在nester命令窗口中:
E:\toolsroot\python\python.exe setup.py register
E:\toolsroot\python\python.exe setup.py sdist upload
我卡在这里了,没有上传成功….待解决
9、添加参数,实现嵌套缩进(我用的python版本是2.7.13)
a_list=['1','2','3','4',['41','42','43',['431','432','433','434',['4341','4342','4343']]]]
def print_lol(items,indent=False,level=0):
for value in items:
if(isinstance(value,list)):
print_lol(value,indent,level+1)
else:
if indent:
for tab_item in range(level):
print("\t"),
print value
print_lol(a_list)
1
2
3
4
41
42
43
431
432
433
434
4341
4342
4343
print_lol(a_list,True)
1
2
3
4
41
42
43
431
432
433
434
4341
4342
4343
本文介绍了如何将Python函数封装成模块,并通过构建发布工具将其发布到Python本地副本中。此外,还介绍了如何导入和使用这些模块,以及如何利用命名空间进行代码组织。
2148

被折叠的 条评论
为什么被折叠?



