美文网首页
Python模块

Python模块

作者: Biomamba生信基地 | 来源:发表于2023-07-16 10:12 被阅读0次

    一、模块定义

    Module,是一个Python文件,以.py结尾,模块能定义函数、类、变量、可执行代码。python中有很多模块,从而帮助用户快速实现一些功能。

    二、模块的导入与使用

    [from 模块名] import [模块 | 类 | 变量 | 函数 | \*] [as 别名]
    常用:
    import 模块名
    from 模块名 import 类、变量、方法等
    from 模块名 import *
    import 模块名 as 别名
    from 模块名 import 功能名 as 别名
    下面以time模块进行演示:
    导入方式一:
    导入:import 模块名
    使用:模块名.功能名()

    # 导入time模块
    import time 
    # 实际上是调用time.py,在Pycharm中按住Ctrl键并点击time字样,可打开time.py文件
    # 调用时候以模块名.功能()的方式实现功能,可以调用模块内的所有功能
    print("现在开始执行程序")
    ## 现在开始执行程序
    
    time.sleep(5)
    print("这是5秒后的执行结果")
    # 大家可以体验一下这五秒的延迟
    ## 这是5秒后的执行结果
    

    导入方式二:
    导入:from 模块名 import 功能名
    使用:功能名()
    这样可以导入特定模块的特定功能,但无法使用模块内的其它功能

    from time import sleep
    
    # 调用时仅通过功能名()执行即可
    print("现在开始执行程序")
    ## 现在开始执行程序
    
    sleep(5)
    print("这是5秒后的执行结果")
    # 大家可以体验一下这五秒的延迟
    ## 这是5秒后的执行结果
    

    导入方式三:
    导入的同时可以命名别名,这样能够快捷的调用一些较长的模块或功能:
    模块定义别名:
    import 模块名 as 别名

    # 例如:
    import time as te
    print('程序开始')
    ## 程序开始
    
    te.sleep(5)
    print('程序结束')
    ## 程序结束
    

    功能定义别名

    # 例如
    from time import sleep as sp
    print('程序开始')
    ## 程序开始
    
    sp(5)
    print('程序结束')
    ## 程序结束
    

    三、自定义模块

    python中已有的模块无法满足你的需求时候,就可以自定义模块来实现特定的功能。
    我们回顾一下前面文件读写的功能,写一个my_module的文件:

    with open("my_module.py",mode = 'w',encoding='UTF-8') as my_file:
        my_file.write('def myfunction():\n    print("我是一个自定义模块")')
    ## 40
    

    写入的文件是这样的:

    # 调用方式一
    import my_module
    my_module.myfunction()
    ## 我是一个自定义模块
    
    # 调用方式二
    from my_module import myfunction
    myfunction()
    ## 我是一个自定义模块
    

    模块的函数如果重名,则后导入的模块会生效:

    # 生成第二个重名模块函数
    with open("my_module2.py",mode = 'w',encoding='UTF-8') as my_file:
        my_file.write('def myfunction():\n    print("我是后定义的模块函数")')
    ## 41
    
    # 导入两个模块
    from my_module import myfunction
    from my_module2 import myfunction
    myfunction()
    # 显示的显然是my_module2中的函数
    ## 我是后定义的模块函数
    

    __all__变量:保证函数可以通过import *导入:

    # 生成第二个重名模块函数
    with open("my_module3.py",mode = 'w',encoding='UTF-8') as my_file:
        my_file.write('__all__=["myfunction"]\ndef myfunction():\n    print("我是__all__中的模块函数")\ndef myfunction2():\n    print("我不是__all__中定义的模块函数")')
    ## 120
    

    定义后的模块内容为:


    # 试一下__all__变量包含与否的函数会调用区别:
    from my_module3 import *
    myfunction()
    myfunction2()# 显然无法正常调用这个函数
    

    我是all中的模块函数
    NameError: name ‘myfunction2’ is not defined

    往期回顾

    生信Python速查手册

    Python安装(Windows+Linux)

    Python的"Rstudio"——Pycharm

    码Python神器:jupyter notebook

    一文了解Python基础:字面量、注释、变量、类型、运算符

    Python判断语句

    Python循环语句

    Python函数与方法

    一文掌握Python数据容器

    Python函数进阶

    Python文件操作

    Python异常

    如何联系我们

    公众号后台消息更新不及时,超过48h便不允许回复读者消息,这里给大家留一下领取资料、免费服务器(有root权限的共享服务器,注册即送200¥)的微信号[Biomamba],方便各位随时交流、提建议(科研任务繁重,回复不及时请见谅)。此外呼声一直很高的交流群也建好了,欢迎大家入群讨论:永久免费的千人生信、科研交流群

    大家可以阅读完这几篇之后添加
    给生信入门初学者的小贴士
    如何搜索公众号过往发布内容

    相关文章

      网友评论

          本文标题:Python模块

          本文链接:https://www.haomeiwen.com/subject/ogypudtx.html