轻轻的 发表于 2017-4-30 06:51:47

Python第二课-共享代码(函数、模块)

第一个模块文件:
nester.py

'''模块名:nester
其中包含一个函数:print_lol 用于输出一个可能嵌套有其他列表的列表'''
def print_lol(the_list, level=0, d='\t'): #参数预定默认值之后,成为可选参数
'''函数print_lol, 使用递归的方式输出一个可能嵌套有其他列表的列表
参数the_list, 是需要输出的列表
参数level, 是整形,表示缩进级别,默认值为0
参数d, 是字符串,表示缩进符号,默认值为制表符'''
for each_item in the_list:
if isinstance(each_item, list):
print_lol(each_item, level+1) #每深入到下一层列表,缩进级别+1
else:
for tab_stop in range(level): #range()是一个BIF 返回一个迭代器
print(d, end = '')
print(each_item)


碎碎念:函数不指定返回值时,默认return(None)

给模块创建一个发布(distribution):
1、新建'nester'文件夹
2、新建'setup.py',用于发布

from distutils.core import setup
setup(name = 'nester' #发布名
version = '1.0.0' #版本号
py_modules = ['nester'] #模块列表
author = 'pythonmap'
author_email = 'yuanta11@gmail.com'
url = 'pythonmap.iteye.com'
description = 'A simple printer of nested lists')

3、构建此distribution:
    终端中输入:python setup.py sdist
4、安装distribution:
    终端中输入:python setup.py install
5、查看发布后的nester文件夹结构变化
6、发布后即可在其他模块中导入使用

import nester


修改nester模块,重新发布新版本API

'''模块名:nester
其中包含一个函数:print_lol 用于输出一个可能嵌套有其他列表的列表'''
def print_lol(the_list, level=0, d='\t', indent=False): #参数预定默认值之后,成为可选参数
'''函数print_lol, 使用递归的方式输出一个可能嵌套有其他列表的列表
参数the_list, 是需要输出的列表
参数level, 是整形,表示缩进级别,默认值为0
参数d, 是字符串,表示缩进符号,默认值为制表符
参数indent, 是一个布尔值,表示是否进行缩进,默认为否'''
for each_item in the_list:
if isinstance(each_item, list):
print_lol(each_item, level+1) #每深入到下一层列表,缩进级别+1
else:
if indent: #如果调用函数时indent参数为True,输出缩进符号
for tab_stop in range(level): #range()是一个BIF 返回一个迭代器
print(d, end = '')
print(each_item)


修改setup.py: version = 1.2.0
重新发布:终端中输入 python setup.py sdisk
重新安装:终端中输入 python setup.py install
(是否需要重新安装我也不是很清楚,高手赐教)
页: [1]
查看完整版本: Python第二课-共享代码(函数、模块)