• Python 自定义模块


    自定义模块

    1. 什么是模块 :本质就是.py文件,是封装语句的最小单位。

    2. 自定义模块:实际上就是已定义.py文件 ,其中可以包含:函数定义,可执行语句,函数定义,统称为模块成员。

    3. 模块的运行方式

      ① 脚本方式:直接用解释器执行,或者IDE(Pycharm)中运行

      ② 模块方式:被其他的模块导入。此时作用是为导入它的模块提供资源、(变量,函数,类的定义等)

    4. Python 提供了一种可以判断自定义模块属于开发阶段还是使用阶段 __name__属性的使用

      __name__ #以脚本方式运行时 __name__为固定的字符串 (__main__)
      		 #以导入方式运行时 __name__就是本模块的名字 
      
    5. 系统导入模块的路径:

      • 内存中:如果之前成功导入过某个模块,直接使用已经存在的模块
      • 内置路径下:安装路径在:lib
      • sys.path : 是一个路径的列表
      • PYTHONPATH :import时 寻找模块的路径

    可以使用sys.path.append(path) 加入模块的路径

    __file__ #当前文件的绝对路径方法

    os.path.dirname() : 可以获取某个路径的父路径 ,通常用于获取当前模块的相对路径

    sys.path.append(os.path.dirname(__file__)+r'/path')	#使用相对路径 来添加模块的位置
    
    1. 导入模块的多种方式:

      • import xxx :导入一个模块的所有成员

      • import xxxa,xxxb 一次性导入多个模块的所有成员

      • from xxx import xxx : 从某个模块中 导入某个成员

      • from xxx import *

        form xxx import * 和 Import xxx的区别:

        第二种方式在使用其中成员时,必须使用模块名作为前缀

        第一种方式在使用其中成员时,直接使用成员名即可 。

        import mymodel2
        
        mymodel2.fun1()
        
        from mymodel2 import *
        
        fun1()
        

      如何解决名称冲突的问题?:

      1. 改用Import xxx 这种方式进行导入。
      2. 使用别名解决冲突

      使用别名: alias --> as

      1. 避免名称冲突
      2. 简化书写

    from xxx import * 控制成员被导入

    `__all__` 是一个列表 用于表示本模块可以被外界使用的成员  
    
    __all__ = ['AGE','age2']		#限制只能使用的变量 ,只对form  import * 时有效 
    
    AUTHOR  = 'PANDA'
    AGE = 18
    age2 = 0
    

    相对导入

    ​ 相对导入

    ​ 针对某个项目

    ​ 次模块 作为从外界引用的内容

    ​ from .. import xxx

  • 相关阅读:
    任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0。
    【每天一个Linux命令】14. Linux中locate命令的用法
    ZetCode PyQt4 tutorial signals and slots
    ZetCode PyQt4 tutorial layout management
    ZetCode PyQt4 tutorial work with menus, toolbars, a statusbar, and a main application window
    ZetCode PyQt4 tutorial First programs
    A Simple Makefile Tutorial
    Swapping eth0 and eth1 on OK335xS board
    OK335xS U-boot 环境变量解析
    OK335xS U-boot GPIO control hacking
  • 原文地址:https://www.cnblogs.com/pandaa/p/12066880.html
Copyright © 2020-2023  润新知