zoukankan      html  css  js  c++  java
  • python模块知识一 自定义模块、time、datetime时间模块

    第五章 模块

    1.自定义模块:

    1. 模块分类:

      1. 内置模块(标准库)-- python解释器自带的.py文件(模块)
      2. 第三方模块(各种大神写的)-- 需要额外下载(并发编程pypi)
      3. 自定义模块(自己写的)--不用额外下载
    2. 每一个py文件就是一个模块

      import #导入模块

      模块的好处:

      1. 避免些重复代码
      2. 可以多次利用
      3. 拿来主义
    3. 导入模块发生的事情:

      1. 当前的名称空间中开辟一个新空间(test)
      2. 将模块中所有的代码执行
      3. 通过 模块名.函数名 进行查找函数
    4. 使用别名使文件名更短:

    ​ import test as t

    print(locals())#查看当前空间的变量
    i mport test
    print(locals())
    #调用导入模块的函数
    test.func()
    
    #使用别名
    import test as t
    t.func()
    
    1. 不同模块使用同一别名做兼容性
    msg = {1:"扳手",2:"螺丝刀"}
    choose = input(msg)
    if choose == 1:
        import meet as t
    elif choose == 3:
        import test as t
    
    t.func()
    
    1. from :

    ​ from 和import区别:

    ​ import:#将整个模块运行

    ​ 缺点:占用内存大。

    ​ 优点:不会和当前文件定义的变量或者函数发生冲突

    ​ from:

    ​ 缺点:会与当前的文件定义的变量或者函数发生冲突,(可以用别名解决)

    ​ 优点:占用内存小

    1. from * :--拿模块所有

      会出现覆盖现象,不能解决,不建议使用

      __all__ = ["可被导入的函数名和变量名"]#写在模块中配合from * 使用指定要拿的

    name = 'cc'
    def func():
        print('is 666')
    from test import *
    print(name)
    func()
    
    name = "ww"
    from test import name as n#别名
    print(name)
    print(n)
    
    1. 模块导入的坑

      例如:不要三个py文件相互导入,会形成环路

    2. 模块的两种用法:

      脚本:(在cmd中执行 python text.py

      模块:自测函数不会被导入

    def func():
        print(1)
    if __name__ == '__main__':#自测接口
        func()
    
    1. 导入路径:

      1. 相对路径:

        from day15.t1 import meet
        print(meet.name)
        
      2. 绝对路径:

        #错误引用
        from r"D:" import meet
        from ../
        #正确引用
        from sys import path
        print(sys.path)
        path.insert(0,"D:\")
        import meet
        print(meet.name)
        

      sys.path中模块的顺序:自定义 > 内置 > 第三方

    2.time --时间模块

    1. time.time():--时间戳,浮点数,可运算
    2. time.sleep():--睡眠 #秒
    import time
    print(time.time() + 5000)
    time.sleep(3)#睡眠3秒
    
    1. time.strftime("格式化","结构体时间"):将时间戳、结构体时间转换成字符串时间
    2. time.gmtime():--元组形式 命名元组,结构体时间,格林尼治时间
    3. time.localtime():计算机当前时间,结构体时间
    print(time.strftime("%Y-%m-%d %H:%M:%S"))
    
    print(time.gmtime())
    print(time.gmtime()[0])
    print(time.gmtime().tm_year)
    
    #将时间戳转换成字符串时间
    print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(15000)))
    
    1. time.strptiem():将字符串时间转换成结构化时间
    2. time.mktime():将结构化时间转换成时间戳
    print(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S"))
    
    #将字符串时间转换成时间戳
    print(time.mktime(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S")))
    print(time.mktime(time.gmtime()))
    

    3.datetime 模块

    ​ 用处:记录日志使用,计算时间

    from datetime import datetime,timedelta
    print(datetime.now())#获取当前时间
    print(type(datetime.now()))#--对象
    
    print(datetime(2019,5,20,13,14,00))#指定日期标准化
    
    print(datetime(2019,5,20,13,14,00) - datetime(2019,5,20,13,14,00))
    
    #将当前时间转换成时间戳
    t = datetime.now()
    print(t.timestamp())
    #将时间戳转换成当前时间
    import time
    print(datetime.fromtimestamp(time.time()))
    print(datetime.fromtimestamp(150000))
    
    #字符串转成对象
    print(type(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S")))
    #将对象转成字符串
    print(str(datetime.now()))
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    
    #timedelta 时间运算.加减
    print(datetime.now() + timedelta(hours = 30 * 24 *12))
    
    

  • 相关阅读:
    WebApi 生成接口文档
    MVC POST 嵌套格式的数据到Controller
    使用ABP框架的项目找不到system.web.http的解决办法
    SQLServer使用XML拆分以逗号分隔的字符串
    webapi使用swagger出现“Cannot read property 'parameters' of null”
    部署到IIS后出现ORA-12560的解决办法
    【ORACLE】“System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本。”解决办法
    Go安装和简单配置开发环境
    怎么安装Jupyter Notebook主题皮肤并设置教程
    如何修改Anaconda中Jupyter Notebook默认工作路径(保存文件路径)
  • 原文地址:https://www.cnblogs.com/Onlywang/p/11256040.html
Copyright © 2011-2022 走看看