• python常用模块:包的使用、init作用、相对导入绝对导入与内置函数


    本文目录:

    一、包的详解
    二、相对导入和绝对导入
    三、内置模块补充

     

     

    一、包的详解

    1、包是什么

        包其实也是一个模块,只不过是一个大的模块下包含一堆模块的载体
        本质上也是一个文件夹,与普通文件的区别在于其中包含一个init的文件

    2、包的作用

        包的作用就是提高代码的可读性和扩展性

    3、怎么使用包

        创建一个package文件夹,在该文件下创建多个文件
        使用包和调用模块一样,import 包名

    4、init文件的作用

        模块调用会发生一下三种情况:
          1.会创建一个名称空间
          2.会执行模块中的代码
          3.在执行文件中产生的名称指向模块名称的空间

        但包是一个文件夹是包不是文件,所以init在导入包时,就执行了包上模块功能

        好处:可以在init文件下调用多个模块中的功能,就无需在挨个查找

        总结:init其实是讲所有模块名导入到该文件下,继而将所有模块名称下的功能导入其中

        注意:由于init文件作为模块导入,所以sys.path中不包含该目录,所以导入时要制定该名

    5、包的嵌套

        定义:包的嵌套的就是包中有包的意思,包中的包被称为子包
        要是用子包中的内容和模块方法一样,在子包中的init中导入需要的内容,但要注意不管                  是子包都是做为模块导入的

        调用sys.path中肯定不包含子包路径,导入时需要从文件目录往下找

    6、导入需要注意的事项

        1.使用import导入模块时可以加点来访问下层
        2.注意点的左边必须是包名
        3.在import后面不可以有点,必须有一个明确的名字

     

    二、相对导入和绝对导入

      1、相对导入的定义

        从sys.pash开始的完整路径开始导入

      2、绝对导入的定义

        相对于被导入模块的路径
        语法为 "."表示当前路径,”.."表示上一层路径,“..."上上层的路径 以此类推

      3、注意事项:
        1.建议不超过三层
        2.相对导入只能用于包的内部模块之间的调用

      4、常见的错误演示

        绝对导入时没有从当前文件开始
        执行文件中用了绝对导入
        跳出了顶层包的范围

     

    三、内置模块的补充

    print(complex(1))
    #complex 转换为复数形式
    
    print(dir())
    #查看内置属性和方法,不传参数就是当前对象
    
    print(divmod(10,3))
    #执行除法运算,返回商和余数
    
    print(enumerate(["a",2,3,4]))
    #将值和索引组成元组
    
    print(globals())
    #查看全局空间中有哪些名称
    
    def func():
        x=100
        print(locals)
    func()
    #locals 查看局部空间有哪些名称
    
    print(hash([1,2,3]))
    #不可变类型可hash 可变类型不可hash
    
    print(help())
    #查看帮助信息
    
    li=[1,2,3,4]
    res=li.__iter__()
    res.__nest__()
    iter(li)
    next(res)
    #可迭代对象和可迭代器对象
    
    print(len(li))
    #代表长度
    
    print(id(100))
    print(memoryview("100".encode("utf-8")))
    #id和memoryview 找内存地址
    
    print(pow(2,3,3))#2**3%3
    #2的三次方除3
    
    print(type(str([1,2,3])))
    #返回对象字符串的表示
    
    print(list(reversed([1,2,3])))
    #reversed反转顺序
    
    print(round(1.2))
    #四舍五入
    
    res=slice(1,3)
    li=[1,2,3,4,5,6,7,8,9]
    print(li[1:3])
    print(res)
    #slice切分的意思
    
    print(list(zip([1,2,3],[3,2,1])))
    #zip拉链函数将多个可迭代对象中的数据一一对应
    
    print(vars())
    #不传参数和locals一样,如果传参那就调用这个对象的__dict__

        

  • 相关阅读:
    python中的字符数字之间的转换函数
    java中的this和super的作用和异同和C++中调用父类的构造函数
    夺命雷公狗---Smarty NO:19 html_options函数
    夺命雷公狗---Smarty NO:18 html_checkboxes
    夺命雷公狗---Smarty NO:17 html_table函数
    夺命雷公狗---Smarty NO:16 html_image函数
    夺命雷公狗---Smarty NO:15 fetch函数
    夺命雷公狗---Smarty NO:14 debug调试
    夺命雷公狗---Smarty NO:13 系统自定义函数(plugins)
    夺命雷公狗---Smarty NO:12 section函数
  • 原文地址:https://www.cnblogs.com/wuzhengzheng/p/9778227.html
Copyright © 2020-2023  润新知