博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模块的初始
阅读量:4972 次
发布时间:2019-06-12

本文共 1768 字,大约阅读时间需要 5 分钟。

  1. 自定义模块:

    1. 什么是模块:本质就是.py文件,封装语句最小单位。
    2. 自定义模块:实际上就是定义.py,其中可以包含:变量定义,可执行语句,for循环,函数定义等等,它们统称为模块的成员。
  2. 模块的运行方式:

    1. 脚本方式:直接用解释器执行。或者pycharm中右键运行。
    2. 模块方式:被其他的模块导入。为导入他的模块提供资源(变量,函数定义,类定义等)。
  3. __name__属性的使用:

    1. 在脚本方式运行时,__name__是固定的字符串:__main__
    2. 在以模块方式被导入时,__name__就是本模块的名字。
    3. 在自定义模块中对__name__进行判断,决定是否执行可执行语句:开发阶段,就执行,使用阶段就不执行。
  4. 系统导入模块的路径:

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

    如果上面都找不到,就报错。

    通过动态修改sys.path的方法将自定义模块添加到sys.path中。

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

    import sysimport os sys.path.append(os.path.dirname(__file__)+'/aa')
  5. 导入模块的多种方式:

    1. import xxx:导入一个模块的所有成员
    2. import aaa,bbb:一次性导入多个模块的成员。不推荐这种写法,分开写。
    3. from xxx import a:从某个模块中导入指定的成员。
    4. from xxx import a,b,c:从某个模块中导入多个成员。
    5. from xxx import *:从某个模块中导入所有成员。
  6. import xxx 和 from xxx import *的区别:

    1. 第一种方式在使用其中成员时,必须使用模块作为前缀。不容易产生冲突。
    2. 第二种在使用其中成员时,不用使用模块名作为前缀,直接使用成员名即可。但是容易产生冲突。在后定义的成员生效(把前面的覆盖率。)
  7. 怎么解决命名冲突的问题:

    1. 改用import xxx这种导入方式。
    2. 自己避免使用同名
    3. 使用别名解决冲突
  8. 使用别名:alias:

    1. 给成员取别名,避免名称冲突。

    from my_module import age as a

    ​ 2.给模块取别名,目的是简化书写。

    import my_module as m

  9. for xxx import*控制成员被导入:

    1. 默认情况下,所有成员都会被导入。

      __all__是一个列表,用于表示本模块可以被外界使用的成员,元素是成员的字符串。

    2. 注意:

      __all__只能对from xxx import*这种导入方式生效,其余的方式不生效。

  10. 相对导入

    1. 针对某个项目的不同模块之间进行导入,成为相对导入。

    2. 只有一种格式:

      from 相对路径 import xxx

    3. 相对路径:包含了点号的一个相对路径。

      . 表示的是当前的路径

      .. 表示的是父路径。

      ...表示的是父路径的父路径。

    #相对导入同项目下的模块#from ..z import zz     #容易向外界暴露zz模块from ..z.zz import *#不使用相对路径的方式,导入本项目的模块#通过当前文件的路径找到z的路径import os import syssys.path.append(os.path.dirname(os.path.dirname(__file__)+'/z'))from zz import *
  11. 常用模块:random

    此模块提供了个随机数获取相关的方法:

    1. random.random():获取[0.0-1.0)范围内的浮点数
    2. random.ranint(a.b):获取[a,b]范围内的一个整数
    3. random.umiform(a,b):获取[a,b)范围内的浮点数
    4. randim.shuffle(x):把参数指定的数据中的元素打乱。参数必须是一个可变的数据类型。
    5. randim.sample(x,k):从x中随机抽取k个数据,组成一个列表返回。

转载于:https://www.cnblogs.com/wang-xing-hao/p/10882993.html

你可能感兴趣的文章
phpcms V9 MVC模式 与 URL访问解析
查看>>
基于visual Studio2013解决C语言竞赛题之1013字符串查找
查看>>
js中==和===的区别
查看>>
让管理靠边站!—摘自《华尔街日报》
查看>>
用机器代码书写规则-信息化基础
查看>>
Tomcat+ApacheSOAP部署访问COM对象的WebService
查看>>
软件工程第三次作业
查看>>
Result Maps collection already contains value for com.xxx.x.dao.xxxMapper.Bas
查看>>
【万里征程——Windows App开发】应用栏
查看>>
SQL--MID()函数
查看>>
Ajax与传统Web开发的区别
查看>>
绝对路径与相对路径
查看>>
Java加密与解密笔记(三) 非对称加密
查看>>
JS学习笔记 - fgm练习 - 数字自增 定时器 数字比大小Math.max
查看>>
NSNotification学习笔记
查看>>
asp.net asp:Repeater嵌套绑定方法(2)
查看>>
微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
查看>>
动态规划 Common Subsequence
查看>>
GitHub 开启 Two-factor authentication,如何在命令行下更新和上传代码
查看>>
C#中的线程一(委托中的异步)
查看>>