基础 day13

day12回顾:

  装饰器 decorator

 

  def mydeco(fn):

      return fn

 

  @mydeco

  def myfunc():

      print('被装饰函数')

 

  myfunc()

 

函数的文档字符串

  help(函数名) 用于查看函数的帮助信息

 

__doc__ 属性

  用来绑定函数的文档字符串

 

__name__ 属性

  用来绑定函数名(字符串)

 

 

 

模块 module

  模块的导入语句:

    import xxx 语句

    from xxx import yyy 语句

    from xxx import *

  导入语句的实质是 在本地创建变量来绑定模块/函数/数据

 

dir 函数:

  返回当前对象或作用域内变量名的列表

 

math 数学模块

time 时间模块

   time.sleep()

 

 

 

 

day13 笔记

系统模块 sys

  此模块都是运行时系统的信息

 

  文档参见:

    pbase/python_base_docs_html/系统模块sys.html

 

  

 

自定义模块

  示例见:

    mymod.py  # 自定义模块

    test_mymod.py  # 导入并测试模块

 

 

import 语句搜索模块的路径顺序

  1. 搜索程序运行时的路径(当前路径)

  2. sys.path 提供的路径

  3. 搜索内置模块

 

 

模块的加载过程:

  在模块导入时,模块所有语句会执行

  如果一个模块已经被导入,则再次导入时不会重新执行模块内的语句

 

模块的重新加载

  import mymod

  import imp

  imp.reload(mymod)  # 在运行时重新加载mymod 模块

 

模块被导入和执行的过程:

  1. 先搜索相关路径找模块(.py文件)

  2. 判断是否有此模块对应的.py文件,如果.pyc文件比.py文件新,则直接加载.pyc文件

  3. 否则用模块.py 文件生成.pyc并加载执行

 

pyc模块的编译 compile

            编译             解释执行

  mymod.py -----> mymod.pyc -------> python3

 

 

 

模块的文档字符串

  模块内第一个没有赋值给任何变量的字符串为文档字符串

 

模块的__doc__属性:

  用于绑定模块文档字符串

 

__file__ 属性

  绑定模块对应的文件路径

 

 

__name__ 属性

  __name__属性用来记录模块的自身的名字

 

  作用:

    1. 记录模块名

    2. 判断是否为主模块

  说明:

    1. 当此模块作为主模块(也就是第一个运行的模块)运行时,__name__绑定'__main__'

    2. 当此模块不是主模块时,__name__绑定模块名(文件名去掉.py后缀)

 

 

 

模块的__all__列表

  模块中的 __all__ 列表是一个用来存放可导出属性的字符串列表

 

  作用:

    限定当用from xxx import * 语句导入时,只导入 __all__ 列表内的属性

 

  示例见:

    mymod4.py

 

模块的隐藏属性

  模块中以'_' 开头的属性,在from xxx import * 导入时将不被导入,通常称这些属性为隐藏属性

 

 

 

随机模块 random

  作用:

    用于模拟或生成随机输出的模块

 

  文档参见:

    python_base_docs_html/随机模块random.html

 

练习:

  猜数字游戏:

    随机生成一个0~100的整数,用变量x绑定

    让用户输入一个数y,输出猜数字的结果.

       1) 如果y等于x,则提示"恭喜您猜对了!", 退出程序

       2) 如果y大于x,同提示"您猜大了"

       3) 如果y小于x,同提示"您猜小了"

      让用户循环输入,直到猜对为止,同时显示用户猜数字的次数后退出程序

 

 

 

 

(模块包) package

  包是将模块以文件夹的组织形式进行分组管理的方法

 

  作用:

    将一系列模块进行分类管理,有利于访问命名冲突

    可以在需要时加载一个或部分模块,而不是全部模块

 

  包示例:

    mypack/

        __init__.py

        menu.py

        games/

            __init__.py

            contra.py

            supermario.py

            tanks.py

        office/

            __init__.py

            excel.py

            word.py

            powerpoint.py

  创建命令:

    mkdir mypack

    cd mypack

    touch __init__.py menu.py

    mkdir games office

    cd games

    touch __init__.py contra.py supermario.py tanks.py

    cd ../office

    touch __init__.py excel.py word.py powerpoint.py

 

__init__.py 文件

  __init__.py 是常规包内必须存在的文件

  __init__.py 会在包加载时被自动调用

 

  作用:

    编写此包的内容

    在内部填写包的文档字符串

  

包的导入语法:

  # 同模块的导入规则相同

  import 包名 [as 包别名]

  import 包名.模块名 [as 模块新名]

  import 包名.子包名.模块名 [as 模块新名]

 

  from 包名 import 模块名 [as 模块新名]

  from 包名.子包名 import 模块名 [as 模块新名]

  from 包名.子包名.模块名 import 属性名[as 属性新名]

 

  from 包名 import *

  from 包名.子包名 import *

  ...

 

       

 

明日预告

  包的相对导入

  包的__all__列表

 

  异常基础

    try-except语句

    try-finally语句

    raise 语句

    assert语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值