day15

  1. 今日内容大纲

  2. 昨日内容回顾作业讲解

    • 装饰器:完美的呈现了开放封闭原则。装饰器的本质:闭包。

    • def wraper(f):
      def inner(*args, **kwargs):
      """执行被装饰函数之前的操作"""
      ret = f(*args, **kwargs)
      """执行被装饰函数之后的操作"""
      return ret
      return inner
  3. 今日内容

    1. 自定义模块:

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

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

      • 在脚本方式运行时,_name__是固定的字符串:_main
      • 在义模块方式导入时,__name__就是本模块的名字。
    4. 系统导入模块时的路径

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

      如果都找不到,就报错。

      动态修改sys.path。

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

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

      • import xxx:导入一个模块的所有成员。
      • import aaa, bbb:一次性导入多个模块的成员。不推荐这种写法,分开写。import os,sys 这俩是黄金搭档可以一起写。
      • from xxx import a:从某个模块中导入指定的成员。
      • from xxx import a,b,c:从某个模块中导入多个成员。
      • form xxx import *:从一个模块中导入所以的成员。
    6. import xxx 和 form xxx import *的区别

      • 第一种方式在使用其中成员时,必须使用模块名作为前缀。不容易产生命名冲突。
      • 第二种方式在使用其中成员时,不用使用模块名作为前缀,直接使用成员名即可。容易产生命名冲突。在后面定义的成员名生效(把前面的覆盖了)。
      • 怎么解决名称冲突问题?
        • 改用 import xxx。
        • 自己避免使用同名。
        • 使用别名解决冲突
      • 使用别名:alias
        • 给成员起别名,避免名称冲突。from my_modul import age as a
        • 给模块器别名,目的简化书写。import my_modul as m
    7. form xxx import *默认控制成员被导入

      1. 默认情况下,所以的成员都会被导入。
      2. __all__是一个列表,用于表示本模块可以被外界使用的成员。元素时成员名组成的字符串。
      3. 使用__all__控制哪些成员可以被外界使用 只对于 from import 起作用
    8. 相对导入

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

      2. 只有一种格式:from 相对路径 import xxx

        1. 相对路径:包含了待你好的一个相对路径。
        2. .表示的是当前的路径。
        3. ..表示的是父路径
        4. ...表示的是父路径的父路径
        # 相对导入同项目下的模块
        # from ..z import zz # 容易象外界暴露zz模块
        from ..z.zz import *
        # 不使用相对导入的方式,导入本项目中的模块
        # 通过当前文件的路径找到你想导入的z的路径
        import os,sys
        sys.path.append(os.path.dirname(os.path.dirname(__file__)) + '/z')
        from zz import *
    9. 常用模块:time,datatime,random

      1. random

        1. 此模块提供了随机数获取的相关的方法。官方文档(C:\Users\libo\AppData\Local\Programs\Python\Python36\Doc)
        2. random.random():获取[0.0,1.0)范围内的浮点数。
        3. random.randint(a,b):获取[a,b]范围内的一个整数。
        4. random.uniform(a,b):获取[a,b)范围内的浮点数。
        5. random.shuffle(x):把参数指定的数据中的元素混洗,其中参数为变的数据类型。
        6. random.sample(x,k):从x中随机抽取k个数据,组成一个列表返回。
  4. 今日总结

    函数总结思维导图

    GitHub仓库

    https://github.com/libo-sober/LearnPython/tree/master/day12

  5. 预习内容

老男孩教育python全栈第22期Day15笔记的更多相关文章

  1. 老男孩Python全栈第2期+课件笔记【高清完整92天整套视频教程】

    点击了解更多Python课程>>> 老男孩Python全栈第2期+课件笔记[高清完整92天整套视频教程] 课程目录 ├─day01-python 全栈开发-基础篇 │ 01 pyth ...

  2. 老男孩教育python全栈第九期视频

    失效了在下面评论即可,会及时更新.python9期已全部更新完 链接: https://pan.baidu.com/s/1VV8_ZyVasK05iKd7QMxO-A 密码: 9zau

  3. python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)

    python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...

  4. 老男孩最新Python全栈开发视频教程(92天全)重点内容梳理笔记 看完就是全栈开发工程师

    为什么要写这个系列博客呢? 说来讽刺,91年生人的我,同龄人大多有一份事业,或者有一个家庭了.而我,念了次985大学,年少轻狂,在大学期间迷信创业,觉得大学里的许多课程如同吃翔一样学了几乎一辈子都用不 ...

  5. python全栈开发中级班全程笔记(第二模块、第四章(三、re 正则表达式))

    python全栈开发笔记第二模块   第四章 :常用模块(第三部分) 一.正则表达式的作用与方法 正则表达式是什么呢?一个问题带来正则表达式的重要性和作用      有一个需求 : 从文件中读取所有联 ...

  6. python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)

    python全栈开发笔记第二模块 第四章 :常用模块(第二部分)     一.os 模块的 详解 1.os.getcwd()    :得到当前工作目录,即当前python解释器所在目录路径 impor ...

  7. Python全栈开发第二期课表

     day01-python 全栈开发-基础篇                 01 开课介绍 01:55:13 ★  02 开课介绍02 01:28:31 ★  03 开课介绍03 00:22:55 ...

  8. python全栈开发 * 22 面向对象 知识点汇总 * 180703

    22 面向对象 -----属性,类方法,静态方法,反射一.属性1.属性的定义:将方法伪装成属性,虽然在代码层面上没有任何高深之处,但让其看起来更合理. (类似于属性的方法)class Person: ...

  9. python全栈开发中级班全程笔记(第二模块)第一部分:文件处理

      第二模块 第一部分:文件处理与函数 #插曲之人丑就要多读书:读书能够提高个人素质与内涵,提升个人修养与能力,以及层次的提升. 推荐书籍:追风筝的人.白鹿原 电影:阿甘正传.辛德勒的名单 第一节:三 ...

随机推荐

  1. 可以用命令行控制eclipse断点增加删除、远程调试创建与启动的插件

    java # 创建断点(支持条件断点) curl -X PUT -H "Content-Type:application/json" --data '{"language ...

  2. 史上最全且最简洁易懂的Activity启动流程解析

    Activity的启动流程是一个资深Android工程师必须掌握的内容,也是高职级面试中的高频面试知识点,无论是从事应用层开发,还是Framework开发,其重要性都无需我多言.而要真正理解它,就不可 ...

  3. WIN10家庭版安装ORACLE的问题

    第一次安装成功后可启动ORACLE服务,重启计算机后服务监听无法启动,建议替换系统

  4. 数值分析案例:Newton插值预测2019城市(Asian)温度、Crout求解城市等温性的因素系数

    数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温性的因素系数 文章目录 数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温 ...

  5. Gitlab-CI/CD 1

    Gitlab-Runner自动构建服务器搭建1 这里讲到的gitlab仓库指的是https://gitlab.com/,自建gitlab仓库也基本相同. 项目的构建打包过程相对比较消耗系统性能,所以g ...

  6. 笔记:phpstudy、虚拟机CentOS安装、Linux命令

    一.phpstudy 1.phpstudy实现w(Windows)a(Apache)m(Mysql)p(php)环境 Apache  用来发布Web服务   80端口 MySQL   开源的建议灵活的 ...

  7. Kubernetes 中 Informer 的使用

    原文链接:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247485580&idx=1&sn=7392dbadf ...

  8. 自我介绍网页填写表格PHP,JavaScript,html,css代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Salesforce LWC学习(二十一) Error浅谈

    本篇参考:https://developer.salesforce.com/docs/component-library/documentation/en/lwc/data_error https:/ ...

  10. java基础知识点整理

    1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true. &&:短路与,如果第一个表达式为false时,第二 ...