#coding:utf-8
#注释代码!
#添加两个注释,一个描述模块,一个描述函数 '''这是nester.py模块,提供了一个名为print_lol()的函数,
这个函数的作用是打印列表,其中可能包含
(也可能不包含)嵌套列表。'''
def print_lol(the_list):
'''这个函数取一个位置参数,名为the_list,这可以是任何python列表
(也可以是包含嵌套列表的列表),所指定列表的每个数据项
回(递归地)输出到屏幕上,每个数据项各占一行。'''
for item in the_list:
if isinstance(item,list):
print_lol(item)
else:
print item
print_lol(movies)

模块就是一个包含python代码的文本文件,以.py结尾。

#试着使用
movies = movies = ['The Holy Grail', 1975, 'The Life of Brain', 1979,
["Graham Chapman",["Michael Palin","John Cleese","Terry Gilliam","Eric Idle"]]]
print_lol(movies)

【准备发布】

1.为模块创建一个文件夹nester

2.在文件夹中创造一个setup.py文件

#coding:utf-8
from distutils.core import setup
#从python发布工具中导入setup函数 #这些是setup函数的参数
setup(
name ='nester',
version ='1.0.0',
py_moudles =['nester'],
author ='HETAO',
author_email ='13111300003@163.com',
url ='https://home.cnblogs.com/u/Archimedes/',
description ='A simple printer of nested lists',
)

构建发布

1.构建一个发布文件

2.将发布安装到python本地副本中

这时nester文件夹中会出现两个新的文件夹,他们是由发布工具创建的

【导入模块并使用】

Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import nester
>>>

可以看到导入成功了,接下来试着使用它

Python 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import nester
>>> movies = movies = ['The Holy Grail', 1975, 'The Life of Brain', 1979,
["Graham Chapman",["Michael Palin","John Cleese","Terry Gilliam","Eric Idle"]]] >>> print_lol(movies) Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
print_lol(movies)
NameError: name 'print_lol' is not defined  #python没有找到你的函数!!!
>>>

这是我们就要认识到一个东西叫做【模块的命名空间】

命名空间i就像是姓氏,正确的使用方式是nester.print_lo(movies)

>>> nester.print_lol(movies)
The Holy Grail
1975
The Life of Brain
1979
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
>>>

这样就好了

注:如果使用from nester import print_lol 就可以把指定函数增加到当前命名空间,也就是说不用使用nester这个命名空间限定了。

但这种做法并不被提倡,因为在这时候要注意如果当前命名空间中已经定义了一个同名的函数print_lol,那么之前这个函数就会被引入的函数所覆盖而带来麻烦。

【注册PYPI网站】

要在PYPI上发布,就要先注册一个账号(https://pypi.python.org)

截止 【【P49】】

【head first python】2.共享你的代码 函数模块的更多相关文章

  1. python小数据池,代码块知识

    一.什么是代码块? 根据官网提示我们可以获知: A Python program is constructed from code blocks. A block is a piece of Pyth ...

  2. Python_Day2_共享你的代码

    一.编写简单的函数,保存一下. # coding=utf-8 """ 这是“nester.py”模块,提供了一个名为print_lol的函数,这个函数的作用是打印列表,其 ...

  3. 使用Python编程语言连接MySQL数据库代码

    使用Python编程语言连接MySQL数据库代码,跟大家分享一下: 前几天我用python操作了mysql的数据库,发现非常的有趣,而且python操作mysql的方法非常的简单和快速,所以我把代码分 ...

  4. Python入门之ATM+购物车代码版思维导图

    该项目结合了ATM模版和购物车需求,整个思维导图用Python代码实现,使用思维导图可以清晰明了的看清整个框架: 过程中,用到了Python的知识有Python常用模块,Python常用内置包,log ...

  5. Linux编译Windows共享目录下代码

    Linux编译Windows共享目录下代码(金庆的专栏)万神服务器代码是跨平台的.平时策划在Windows上开自己的服务器测试,测试和发布服务器为Linux.开发时,先在Windows上编译测试,再到 ...

  6. Python:如何用一行代码获取上个月是几月

    现在转一篇志军100发于公众号 Python之禅的文章: Python:如何用一行代码获取上个月是几月 抱歉我用了个有点标题党的标题,因为担心你错过了本文,但内容绝对干货,本文介绍的关于Python时 ...

  7. python集合使用范例的代码

    在代码过程中中,将代码过程中比较好的代码段珍藏起来,如下的代码是关于python集合使用范例的代码,希望能对大伙有用. # sets are unordered collections of uniq ...

  8. Python有趣时刻,这些代码让你大呼"卧槽,怎么会这样"

    分享一个实用问题,用python读取Excel并保存字典,如何做? 下面是该同学问题截图和代码 image.png 代码截图是下面这样的 image.png 不知道大家第一眼看了这个代码,什么感受?我 ...

  9. Python小数据池,代码块

    今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. ...

随机推荐

  1. java如何LOG打印出日志信息

    log4j 记录日志方式 log4j 是apache 提供的记录日志的jar 档. 下载路径: http://logging.apache.org/log4j/1.2/download.html 这里 ...

  2. 【操作教程】利用YCSB测试巨杉数据库性能

    一.前言 巨杉数据库(SequoiaDB)是国内第一款新一代文档型分布式数据库,巨杉数据库由巨杉软件完全自主研发,拥有完全自主知识产权,不基于任何其它的开源项目.SequoiaDB数据库是为分布式存储 ...

  3. JS实现为控件添加倒计时功能

    一.概述 在有些报表需求中,需要为控件添加倒计时功能,限制到某一个时间点后能进行一项操作或不能进行某项操作,比如查询,导出功能等等,又需要人性化地显示还有多少时间,即倒计时功能,比如下图中我们限制这个 ...

  4. string can not be resolved

    参考:http://jingyan.baidu.com/article/a17d5285339c828099c8f245.html

  5. springmvc(一) springmvc框架原理分析和简单入门程序

    springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...

  6. 使用ant自动构建apk

    最近因渠道过多,需要单独接入渠道支付sdk的渠道也很多,而首发在即.人手不足,所以着手了部分相关的工作,看了下目前的操作流程..无奈人比较懒,所以决定进行一波简化的技术,先考虑到了两种方案: 1)脚本 ...

  7. 一颗简单的JDBC栗子

    前言:安装好数据库之后,我们编写的java程序是不能直接使用数据库的,而JDBC(Java Database Connectivity,即java数据库连接)是java语言里用来规范客户端程序访问数据 ...

  8. BootLoader--改进(基于2440)

    BootLoader--改进 之前编写的Bootloader启动内核时间使用差不多7秒钟的时间,大多都是用在CPU将内核从Nandflash读取到SDRam中,故首先想到的方法是改变CPU时钟频率. ...

  9. java基础,流程控制语句

                                流程控制语句 条件语句:              if语句:                        *if(条件 boolean类型) ...

  10. ThinkPHP 实现验证码渲染、校验、点击刷新

    一.在控制器中写方法,生成验证码,代码如下: /** * 验证码生成 * expire 验证码的有效期(秒) * useImgBg 是否使用背景图片 默认为false * fontSize 验证码字体 ...