模块

模块

要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭

代码复用性

  • 模块允许你合理组织代码来实现最优共享

  • 发布工具允许你向全世界共享你的模块

模块

Python 大部分的模块(类库) 都放到了 pypi 上面 需要什么直接搜索.网址https://pypi.org/

函数转换为模块

  • 模块解释一个包含 Python 代码的文本文件,对模块的主要需求就是文件名必须以.py 结尾,他要你把函数转换一个模块,需要把代码保存到一个适当命名的文件中

  • 拿上单元的递归函数举例子,我们可以把这个函数单独放到一个 py 文件里,取名 util.py


'''
 作者:雾烟云
 时间:2024年
 功能:打印出数组里面每一个数组,要是没有就打印出第一个值
'''

def printresult(arr2):
    count = 0
    for index, item in enumerate(arr2, 0):
        if type(item) is list:
            print(item)
            printresult(item)
        else:
            count += 1
            if count == len(arr2):
                print(arr2[0])
                print("一切都结束了")

注释

  • 单行注释

# 这就是单行注释
  • 多行注释就是 ‘’’
'''
这就是多行注释
'''

发布

建立模块

  • 为这个模块创建一个文件夹,起名字 nester 文件夹(名字可以随便设置),然后把模块文件(刚才写好的)放到文件夹下

def printresult(arr2):
    count = 0
    for index, item in enumerate(arr2, 0):
        if type(item) is list:
            print(item)
            printresult(item)
        else:
            count += 1
            if count == len(arr2):
                print(arr2[0])
                print("一切都结束了")
  • 在新文件夹中创建一个 setup.py 的文件,增加如下代码

from distutils.core import setup

setup(

    name='CheckOutArr',  # 名称
    version='1.0.0',  # 版本号
    py_modules=['nester'],  # 那个模块python文件的名称
    author='YJ',  # 作者姓名
    author_email='2993222085@qq.com',  # 作者邮箱
    url='https://jsopy.gitee.io/',  # 作者网址
    description='这就是利用递归找出元素'  # 描述

)
  • 然后在这个文件夹下 打开终端端口,键入一个命令

python setup.py sdist

这样 执行完毕以后 他会在文件夹下面看到 dist 文件夹,setup.py,模块文件.py,还有一个 manifest

安装类库

  • 我们进入这个文件夹 执行 python setup.py install 命令安装

python setup.py install

这样在本地安装好了。

总结

安装前

nester 文件夹下面只有两个文件,一个是 nester.py 另外那个是 setup.py

安装后

nester 文件夹下面有两个文件夹

  • build 下面有个文件夹 lib 里面就是模块文件的源代码

  • dist 里面有文件 就是发布包

  • 模块文件源代码

  • xxx.pyc(可能有)编译版本的代码

  • setup.py (配置文件)

  • MANIFST 发布的文件列表

导入模块并使用

  • 导入模块使用,利用 import 语句

import 包名称(要是包的名称和模块起始文件不对应,那就写模块起始文件文件名)

或者直接写引入方法可以


from 方法名 import 包名称(要是包的名称和模块起始文件不对应,那就写模块起始文件文件名)
  • 使用

# 调用模块封装好的方法

import index2

# 也可以 from index2 import printresult

# 调用的时候就是 printresult(arr2)

arr2 = ['这个杀手不太冷', 1978, '唐人街探案', 1983, [
    '囧妈', ['杀死比尔', '蓝色生死恋', ["终结者", '复仇者联盟']]]]

index2.printresult(arr2)

# 结果

'''

['囧妈', ['杀死比尔', '蓝色生死恋', ['终结者', '复仇者联盟']]]
['杀死比尔', '蓝色生死恋', ['终结者', '复仇者联盟']]
['终结者', '复仇者联盟']
终结者
一切都结束了

'''

发布到 PYPI 网站

  • 去 pypi 上面注册账号

  • 上传代码

  1. 还是在刚才那个包文件目录下 打开终端输入命令:

python setup.py register
  1. 依据提示输入

1
Username: xxxx
Password: xxxxxxx
  1. 上传

setup.py  sdist upload

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录