zoukankan      html  css  js  c++  java
  • 老男孩教育python全栈第22期Day15笔记

    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:UsersliboAppDataLocalProgramsPythonPython36Doc)
          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. 预习内容

  • 相关阅读:
    碰到了一个GDI+的问题,郁闷ing。。。
    (旧文重贴)对于以前遇到过的ws proxy实例化时间太长的问题,看JNDI受到了些启发
    (旧文重贴)下午又看了MBF的介绍,靠,心丧如死!
    (旧文重贴)前段时间关于SmartClient部署的两个问题,都搞定了。
    (旧文重贴)编程高手箴言读书笔记(1)
    SAP MDM 学习网址
    常用Oralce sql
    WE02 修改IDOC
    OBD/IBD 的拣配数量更新
    配置ALE仓库管理
  • 原文地址:https://www.cnblogs.com/SoberLee/p/13648276.html
Copyright © 2011-2022 走看看