zoukankan      html  css  js  c++  java
  • 洗礼灵魂,修炼python(48)--巩固篇—模块

    模块

    其实前面都说过的,不过还是系统的再说一次,相信学到这,大部分都被搞忘了吧,所以再提一下,也为后面的博文做铺垫

    1.什么是模块

    在程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护,不断的滚雪球式的增长。为了维护好代码,我们把很多类和函数分组,分别放到不同的python可读的py文件里,这样就解决了问题,让主程序文件的代码减少,很多编程语言都采用这种组织代码的方式,在html标签里也一样,把样式写入css里,要用的使用再链接css样式表就行。而这里的一个.py文件就称之为一个模块(Module)

    模块也有另一个名称,库,库又分标准库和第三方库,而内置的库(在安装python时就已经带有的库)或者说模块就是标准库,而需要使用pip命令安装的库就叫第三方库。

    2.有哪些模块

    因为python是开源的,pypi等各大社区里也有很多能人志士不断的开发整合各色各样的库(模块)。

    1)而内置的库怎么查看呢?

    我们知道查看内置方法是用dir(__builtins__),查看库又是什么呢?借助sys模块

    (只截取了部分)

    sys.modules方法就可以查看所有的内置库,会列出详细的库名和库的路径,当然如果你只想看库名,可以使用命令sys.modules.keys()

    (只截取了部分呢)

    也可以使用help()函数查看:

    • help()
    • modules

    (只截取了部分)

    上面有方法是查看所有已存在的模块的,自己去研究了

     2)查看第三方模块,在终端界面,使用pip list或者pip freeze查看

    注意:使用pip list时出现的红色字段只是一个警告,意思是说以后pip list的默认格式会采用columns,不用在意,都能正常使用的,如果你实在看不惯可以有方法解决,详细的自己百度吧

     

    3.怎么使用模块

    使用命令导入:

    import  XX

    例:

     

    from  XX import XX

    例:

     

     

    当导入模块下的方法名和其他模块的方法名重复,可以使用as取个别名。

    比如math模块里的sqrt和cmath模块里的sqrt方法,例:

     

    也可以使用from XX import * 导入模块里的所有函数,但此法只能导入XX的类里__init__下的方法,如果是隐藏方法的话使用命令from XX import *则不能被导入

    4.命名空间

    什么是命名空间,比如上面的命令from math import sqrt 中的math就是命名空间,每个空间相互独立,互不影响,所以才会存在不同模块有相同方法名

    5.模块的作用:

    最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

    使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

    6.__name__= ”__main__”

    我们在很多时候都会使用这段代码,其实这个我前面也说过的。

    • __name__指当前的主程序
    • __main__指模块

    主程序:指当前模块的主体程序,并不是__name__。无论当前模块是被别的模块导入还是作为脚本直接运行,都会执行这部分代码

    __name__,指模块应该如何被加载,如果模块是被另一个py文件导入,__name__的值就是py文件名。如果模块是直接执行,__name__的值就是自身,即__main__,本模块或者叫主体程序

    注意:

    所有的模块都有能力执行代码,只是会不会返回结果而已。建议做法是,除了真正需要导入模块才能执行的功能外,一般功能尽量自定义函数解决;

    __name__==’__main可以用来做模块测试

    转载于:https://www.cnblogs.com/yangva/p/7751363.html

  • 相关阅读:
    递归函数及Java范例
    笔记本的硬盘坏了
    “References to generic type List should be parameterized”
    配置管理软件(configuration management software)介绍
    WinCE文件目录定制及内存调整
    使用Silverlight for Embedded开发绚丽的界面(3)
    wince国际化语言支持
    Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
    WinCE Heartbeat Message的实现
    使用Silverlight for Embedded开发绚丽的界面(2)
  • 原文地址:https://www.cnblogs.com/twodog/p/12139087.html
Copyright © 2011-2022 走看看