zoukankan      html  css  js  c++  java
  • 模块

    模块

    什么是模块

    - 本质就是一个.py文件
    - 一个py文件就是一个模块。
    - python封装语句的最小单位:模块(py文件)
    - 模块不宜过大(1000行~2000行)
    - 自定义模块:实际上就是.py
    

    模块的成员

    - 模块的成员:(可执行语句,不立即执行语句)模块中的变量,for循环,if结构,函数定义
      - 可执行语句,不立即执行语句
        - 可执行语句:定义变量。函数调用。循环语句。if条件判断。
        - 不立即执行:函数定义
    - 模块的运行方式:
      - 脚本方式:(直接用解释器执行,pycharm中run运行)
      - 模块方式:被其他的模块导入执行。为导入它的模块提供资源。(函数定义。变量。类定义等..。)
        #模块的导入
    - 自定义被其他模块导入时,其中的可执行语句会立即执行。
    

    python中怎么判断自定义模块属于开发阶段还是使用阶段

    __name__ 方法:
    	如果是以脚本方式运行:固定字符串'__main__'
    	如果是以导入方式运行:__name__所处模块的名字
    

    系统在导入模块时的路径问题

    - 内存中:如果之前成功导入过某个模块,直接使用已经存在的模块。
    - 内置路径中:安装路径下:Lib
    - PYTHONPATH:import 时候寻找模块的路径
    - sys.path:用C语言集成在解释器。是一个路径的列表。
    - 总结:如果都找不到,就报错
    - 动态修改sys.path 
    

    sys.path

    - 添加需要添加模块的路径到sys.path
      - sys.path.append(r'F:\PyCharms wenjian\day15\a')
    - 使用相对位置添加路径(——file——)
    - 使用os模块找到一个路径的父路径(os.path.dirname)
      #导入模块的多种方式。
    - import xxx  (xxx模块名) 导入一个模块的所有成员
    - import XXX,XXX (XX多个模块名)  导入多个模块的成员(不推荐使用)(os,sys 可以考虑一起写)
    - from XXX import a  (从XX导入a)从某地方(xxx)导入指定的a
    - from xxx import a,b,c  从某地方(xxx)导入多个a,b,c
    - from xxx import *    从某地方导入全部成员
    - import xxx   与form  xxx import  * 区别:
      - import xxx:使用其中成员 必须使用模块名作为前缀。不容易产生命名冲突
      - form xxx import * : 无需指定模块名作为前缀。直接使用成员名即可(容易产生命名冲突,在后定义的成员生效。)
      - 怎么解决命名冲突问题:
        - 改用import 方式。
        - 使用别名解决冲突。
        - 自己避免使用重名名称
    

    使用别名(alias)

    - 给成员起别名,为了避免名称冲突:
      - from d15上课 import a as aaa
    - 给模块写别名,简化书写
      - import d15上课 as aa	 
        print(aa.a)
    

    导入模块所有成员

    form 模块名 import *
    

    _all_

    -__all__ 是一个列表,用于表示本模块可以被外界使用的成员。元素是成员名的字符串。(控制可以使用的成员)
    -__all__ 放置在定义模块中(表示该模块可以被调用的元素名)(使用字符串形式书写)
    		__all__=['a1',"a2"]
    		
    相对导入
    - 在同一个文件夹(项目)下的两个模块,将一个模块导入另一个模块。(相对导入)
    - 相对路径(。表示当前路径 ..上级路径)
    
  • 相关阅读:
    V2热帖:要多健壮的代码才能支撑起千变万化的需求?
    jmeter生成html报告的命令
    jmeter5.x&4.x搭配使用Serveragent 监听服务端性能参数
    springboot关于tomcat的几个默认配置
    nginx日志统计分析-shell
    OpenStack虚拟机VIP配置步骤
    openstack 3.14.3 虚拟机增加指定IP网卡
    OpenStack各组件的常用命令
    Filebeat的Registry文件解读
    一个shell脚本的实践
  • 原文地址:https://www.cnblogs.com/luyi84895838/p/11731401.html
Copyright © 2011-2022 走看看