• 包,模块


    Date: 2019-05-27

    Author: Sun

    1. 包

    包定义

    含有__init__.py文件的目录我们称之为包;假如子目录中也有 __init__.py 那么它就是这个包的子包了。
    

    包使用

    ​ 目录内的文件我们称之为模块,我们利用包和模块的目的是为了找到模块,也就是Python文件内的内容,主要是哪些内容,一般都是功能体、代码段比较封闭,主要有三个,一个是类、一个是函数,还有一个是变量对象。

    如上图所示,common_lib目录下有一个__init__.py文件,所以被称为包。

    而此包中有一个模块文件operation.py

    使用包,只需要 from common_lib.operation import * 就可以使用此模块中的函数了。

    import语句语法:

    1. 当使用from package import item时,item可以是package的子模块或子包,或是其他的定义在包中的名字(比如一个函数、类或变量)

      首先检查item是否定义在包中,不过没找到,就认为item是一个模块并尝试加载它,失败时会抛出一个ImportError异常。

    2. 当使用import item.subitem.subsubitem语法时,最后一个item之前的item必须是包,最后一个item可以是一个模块或包,但不能是类、函数和变量

    3. from pacakge import *

      如果包的__init__.py定义了一个名为__all__的列表变量,它包含的模块名字的列表将作为被导入的模块列表。

      如果没有定义__all__, 这条语句不会导入所有的package的子模块,它只保证包package被导入,然后导入定义在包中的所有名字。

    ​ 为了组织好模块,将多个模块分为一个包。包是python模块文件所在的目录,且该目录下必须存在__init__.py文件。

    每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。

    2. 模块

    模块是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码

    模块分为三种:

    • 自定义模块
    • 内置标准模块 (os, sys,time)
    • 开源模块(第三方)

    自定义模块

    ​ 如上述包common_lib中的operation.py就是一个自定义模块。

    ​ 模块导入

    # -*- coding: utf-8 -*-
    __author__ = 'sun'
    __date__ = '2019/5/27 9:54'
    
    from common_lib.operation import *
    

    ​ 导入自定义模块时注意路径,查看库文件sys.path,sys.path.append('路径')添加自定义路径

    内置标准模块

    python提供了很多的内置标准模块,比如time模块,datetime模块,sys模块,pickle模块,hashlib模块等等。

    下面以time模块为例

    # -*- coding: utf-8 -*-
    __author__ = 'sun'
    __date__ = '2019/5/27 18:35'
    
    import time
    
    #返回当前时间戳
    print(time.time())
    #返回当前时间
    print(time.ctime())
    #将时间戳转换为字符串
    print(time.ctime(time.time()-86640))
    #本地时间
    print(time.localtime(time.time()-86400))
    #与time.localtime()功能相反,将struct_time格式转回成时间戳格式
    print(time.mktime(time.localtime()))
    #将struct_time格式转成指定的字符串格式
    print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()))
    #将字符串格式转换成struct_time格式
    print(time.strptime("2016-01-28","%Y-%m-%d"))
    #休眠5s
    time.sleep(5)
    

    开源模块(第三方)

    python语言有很多的开源框架提供的模块,比较有名的有:requests库,scrapy库模块等。

    在python虚拟环境中安装requests库

    pip install requests
    

    下面以requests库模块为例:(下述代码可以暂时不考虑看懂。)

    # -*- coding: utf-8 -*-
    __author__ = 'sun'
    __date__ = '2019/5/27 18:35'
    import requests
    
    import re
    
    res = requests.get(url='https://b.faloo.com/l/0/1.html?t=1&k=%CB%D9%B6%C8')
    
    res_text=res.text
    
    result=re.findall('\" title\"(.*?)\"><img',res_text,re.DOTALL)
    
    print(result)
    

    3. python库

    ​ 具有相关功能模块(包)的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。

  • 相关阅读:
    anguar使用指令写选项卡
    前端性能优化
    有关楼层般的侧导航
    我对面向对象的深刻理解
    jq中的表单验证插件------jquery.validate
    JavaScript 语言中的 this
    闭包,作用域链,垃圾回收,内存泄露
    angular.extend、angular.$watch、angular.bootstrap
    Angular路由(三)
    Angular基础(二)
  • 原文地址:https://www.cnblogs.com/sunBinary/p/10934257.html
Copyright © 2020-2023  润新知