python共享你的代码

本文介绍了如何将Python函数封装成模块,并通过构建发布工具将其发布到Python本地副本中。此外,还介绍了如何导入和使用这些模块,以及如何利用命名空间进行代码组织。

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值