• 模块and包


    1.异常处理:

     1 try:
     2     print('***************')
     3     print(xxxxxxxxxxxxxx)    #先来一个Name错误试试水
     4 except KeyError as x:       #KeyError专门用来接收Key错误
     5     print('这是个Key的错误')
     6 except NameError as e:      #NameError专门用来接收Name错误
     7     print('名字类型的错误!')
     8 except Exception:           #Exception专门用来接收所有类型错误
     9     print('捕捉所有的异常!')
    10 else:
    11     print('你若安好,便是晴天!')
    12 finally:
    13     print('管你什么鬼,都要执行我!')
    14 print('结束了!')

    2.模块:

    一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。

    3.为什么要使用模块:

    如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。     随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用

    4.如何使用模块:

    spam模块:

     1 #spam.py
     2 print('from the spam.py')
     3 
     4 money=1000
     5 
     6 def read1():
     7     print('spam->read1->money',1000)
     8 
     9 def read2():
    10     print('spam->read2 calling read')
    11     read1()
    12 
    13 def change():
    14     global money
    15     money=0

    导入模块并引用:

    import导入方法:

    1 import spam
    2 money=999
    3 spam.part1()
    4 spam.part2()
    5 spam.change()
    6 spam.part1()
    7 spam.part2()
    8 print(spam.money)

    form..import导入模块方法:

    1 from spam import money,part1,part2,change
    2 money=999
    3 part1()
    4 part2()
    5 change()
    6 part1()
    7 part2()
    8 print(money)

    首次导入模块要做的三件事:

    1.创建名称空间,用来存放spam.py中定义的名字

    2.基于创建的名称空间来执行spam.py

    3.名字spam指向该名称空间spam,名字的操作都是以spam.py为准

    如果是from spam import * 导入所有模块,可以在模块中加入一个__all__=[''] 来控制*

    5.模块搜索路径:

    内置模块->sys.path

    查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块

    6.包:

    无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警觉:这是关于包才有的导入语法!

    包的本质就是一个包含__init__.py文件的目录

    凡是导入时带点的,点的左边必须是一个包.

    需要注意的是from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误,如:

    form a import b.c 是错误语法!

    绝对导入:

    from name.cmd import manage

    manage.main()

    相对导入:

    from .. cmd import manage

    manage.main()

    测试的结果一定要在包的顶级包的同级文件中测试

    PS:可以用import导入内置或者第三方模块,但是绝对要避免使用import来导入自定义包的子模块,应该使用from...import...的绝对或者相对导入,且包的相对导入只能用from的形式.

    --------------------------------------------END--------------------------------------------

  • 相关阅读:
    【11】 Java基础 <十一> —— equals的重写
    【10】 Java基础 <十> —— 用个人方法实现构造器的排序
    【9】 Java基础<九> —— 构造器的重载
    【8】 Java基础 <八> —— 方法的重载
    【7】 Java基础 <七> —— 自动装箱 自动拆箱
    【6】 Java基础 <六> —— super关键字
    Linux ssh下实现免密码登录(转载)
    Centos7 安装配置python3虚拟环境 virtualenvwrapper(转载)
    Linux 安装python3.7.0
    TOMCAT 日志自动删除
  • 原文地址:https://www.cnblogs.com/gz369521/p/6796880.html
Copyright © 2020-2023  润新知