第四章 :函数与模块
- 定义函数:
def
- 函数注释文档
def icessun():
# 这也是注释,下面是函数文档注释,描述函数的用途
"""this is function document as docstring"""
vowels=set('aeiou')
word = input("provide a word to search for vowels:")
found=vowels.intersection(set(word))
for vowel in found:
print(vowel)
- 上面这种函数注释可以,下面这种函数注解是针对python3的也行
def search4letters(phrase:str,letter:str)->set:
"""return a set of the letter found in phrase."""
return set(letter).intersection(set(phrase))
参数旁边的表示:希望传入的参数类型;参数列表后面的箭头表示:返回值是一个集合;这样做只是为了方便程序员阅读,程序不会去强制校验。
-
如何看注释,而不用读代码:在IDLE的编辑器中按F5运行代码,在python shell中输入
函数文档help(函数名字)
-
允许将任何对象作为参数传递给函数,而且允许将任何对象作为返回值返回
-
函数参数默认值,调用时没有提供参数值,就是要函数中的默认值。
def search4letters(phrase:str,letter:str='aeiou')->set:
"""return a set of the letter found in phrase."""
return set(letter).intersection(set(phrase))
- 关键字参数赋值,调用函数时,直接使用函数中的形参去赋值(一般是按照形参的位置赋值)
def search4letters(phrase:str,letter:str='aeiou')->set:
search4letters(letter='xyz',phrase='galaxy')
函数共享
-
模块就是包含函数的文件,把需要共享的函数单调放在一个文件里面,作为模块共享,使用时:
import 模块名字
即可 -
模块存放的位置:
- 当前工作目录
- 你的解释器的site-packages位置:
使用setuptools安装
- 标准库位置
在桌面新建一个文件夹mymodules
,把要共享的模块functionTest.py
放入其中;运行cmd
,切换到新建的文件夹下,调用python解释器:py -3(windows下的命令)
,使用import 模块名字
导入模块,使用模块中的函数模块 . 函数
。这个新建的文件夹就会被解释器当做我们的当前工作目录。
-
模块安装到
site-packages
,使用的setuptools
工具- 创建一个发布描述
- 生成一个发布文件
- 安装发布文件
两个必要的发布描述文件:setup.py and README.txt
(命名规则是规定的)
# setup.py 文件 描述我们的模块, README.txt 文件要有,但是内容可选
# py_modules=['functionTest'] 表示在这个将要发布的包中所有的 ".py" 文件
from setuptools import setup
setup(
name='functionTest', # 包名
version='1.0',
description='the first modules by icessun',
author='icessun',
author_email='icessun@qq.com',
url='headfirstlabs.com',
py_modules=['functionTest'],
)
创建发布描述
创建两个必要的文件完毕后,接着到命令行窗口,输入下面的命令必须传递的参数:sdist
,注意切换到包含两个必要的文件的文件夹目录下
可以安装的文件(包)在dist
文件夹(由setuptools
创建)里面,里面包含模块的源代码(三个文件的合并:setup.py && README.txt && functionTest.py
)
- 使用
pip
发布上面生成的包
到此,已经成功的创建了一个发布文件,可以直接把这个发布文件拷给对方,使用pip
安装。或者是直接把这个发布文件上传到PyPI
,让所有的程序员都可以使用。
以后要是决定更新某个模块的代码,重复上面的三个步骤将更新的模块安装到site-packages
,一定记得在setup.py
文件中指定一个新的版本号。
网友评论