zoukankan      html  css  js  c++  java
  • 模块的使用

    一、什么是模块?

      模块是一系列功能的集合体。 

      模块的分类:自定义模块、第三方模块、内置模块(c语言写的一些功能)

      常见的模块形式:

        1、一个module.py文件就是一个模块,文件名是module.py,而模块名是module。

        2、一个包含有__init__.py文件的文件夹也是模块。

        3、已被编译为共享库或DLL或C++扩展。

        4、使用c编写并链接到Python解释器的内置模块。

        

    二、为什么要用模块?

        模块的来源有两种:一种是自己写的,另一种是别人写的(第三方的或者内置的)。

        用第三方的或者内置的模块是一种拿来主义,可以的极大地提升开发效率。

        使用自定义模块可以使我们的程序更清晰,方便管理,实现功能的重复利用。(自定义模块即将我们自己程序中需要用到的公共的功能写入到一个python文件,然后的程序的各部分组件可以通过导入的方式来引用/重用自定义模块中的功能。)

        

    三、如何用模块?

        导入的方式有两种:

        import 模块名          --->前提是有这个模块!

        from 模块名 import 具体的功能

    以spam.py为例来介绍模块的使用,文件名是spam.py,模块名是spam。

    print('from the spam.py')
    
    money = 1000
    
    def read1():
        print('spam模块:',money)
    
    def read2():
        print('spam模块')
        read1()
    
    
    def change():
        global money
        money = 0

    在导模块的时候会触发文件的运行,文件只要运行了会发生什么事?

      1、会以run.py文件(当前执行文件)为准,在内存中会造一个内置名称空间,会造一个以文件级别全局名称空间

    首次导入模块发生了3件事:(重复导入会直接引用之前创造好的结果,不会重复执行模块的文件)

    1、以模块为准创造一个模块的名称空间

    2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间

    3、在当前执行文件中拿到一个模块名

    import spam    #直接引入模块

    如果模块名过长可以起个别名:

    import 过长的模块名 as 新的别名

    在一行当中导多个某块:用逗号隔开,但是不建议这么写,这样写不够清晰,最好一行导一个

    import time,spam,os,sys

    from ... import ... 首次导入发生3件事

    1、以模块为准创造一个模块的名称空间。

    2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间。

    3、在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用。

    from spam import money,read1

    from ... import ...   对比 import ...

    优点:不用加前缀,代码更为精简

    缺点:容易与当前执行文件中名称空间中的名字冲突

    相同点:

    1、都会执行模块相应的文件,都会产生模块的名称空间。

    2、调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关。

    不同点:

    1、一种需要加前缀,一种不需要加前缀

    支持取别名

    可以一行导入多个

    from ... import *   把模块中所有的不是以下划线__开头的名字都导入到当前位置。

    注意:大部分情况下我们的python程序不应该使用这种导入方式,因为*你不知道你导入什么名字,很有可能会覆盖掉你之前已经定义的名字。而且可读性极其的差,在交互式环境中导入时没有问题。

    在模块里定制一个变量

    __all__ = ['read1','money']
  • 相关阅读:
    python 执行sql得到字典格式数据
    python爬虫 url链接编码成gbk2312格式
    windows环境下elasticsearch安装教程(单节点)
    python SQLServer 存储图片
    爬虫的本质是和分布式爬虫的关系
    requests form data 请求 爬虫
    mysql 删除 binlog 日志文件
    查看mysql数据表的大小
    xshell 连接报错 Disconnected from remote host
    centos 7.3 安装 mysqldb 报错 EnvironmentError: mysql_config not found ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  • 原文地址:https://www.cnblogs.com/zhangrenguo/p/12561993.html
Copyright © 2011-2022 走看看