Python学习 7day__高级语法

模块

  模块是包含python代码的文件
  模块可以增加代码重复利用的方式
  当作命名空间使用,避免命名冲突


  定义模块

    模块就是普通的py文件,所以任何代码都可以直接书写
    不过根据模块的规范,最好在模块中编写一下内容
    函数(单一功能)
    类(相似功能的组合或者类似业务模块)
    测试代码

0ss.py
class Student():
    def __init__(self, name = "wanglaji", age = 19):
        self.name = name
        self.age = age

    def say(self):
        print("My name is {0}".format(self.name))
if __name__ =='__main__':            # 可以有效避免代码被导入时被动执行的问题
    def sayHello():
        print("欢迎学习python")

  模块使用方法

    直接导入,如果模块名以数字开头则需要用importlib包导入
     import 模块 as 别名
    选择性导入
     from 模块 import 选择导入的方法

1 #以0ss.py为模块
2 '''import importlib
3 aa = importlib.import_module("0ss")
4 stu = aa.Student("xiaogege", 20)
5 stu = sayHello()
6 stu = say()'''

模块的搜索路径


  加载模块的时候,系统会在哪些地方寻找模块
  系统默认的路径
   import sys
  sys.path 属性可以获得路径
  添加路径:sys,path.append(路径)

1 import sys
2 print(type(sys.path))
3 print(sys.path)
4 for p in sys.path:
5     print(p)

模块的加载顺序

  1. 先搜索内存中已经加载好的模块
  2. 搜索python中的内置模块
  3. 搜索sys.path路径




  包是一种组织管理代码的方式,包里面存放的是模块
  将模块包含在一起的文件夹就是包

  自定义包的结构
   |---包
   |---|--- __init__.py 包的标志性文件
   |---|--- 模块1
   |---|--- 模块2
   |---|--- 子包(子文件夹)
   |---|---|--- __init__.py 包的标志性文件
   |---|---|--- 子包模块1
   |---|---|--- 子包模块2

包的导入
 

  直接导入:improt package name
  设置别名:import package name as p
  from ... import 导入方法


__all__用法

  __all__=['模块1', '模块2', '模块3'....]
  在使用form package import * 的时候 * 可以导入的内容
  __init__.py如果文件为空,或者没有__all__那么只导入__init__
  __init__.py中如果设置了__all__ 的值,那么则按照__all__指定的子包或者模块进行导入


异常处理

  python中,异常是一个类,可以处理和使用
  不能保证程序永远正确运行,但是要保证程序在最坏的情况下能够得到妥善的处理

   try:
   尝试实现某个操作,如果没异常则正常完成
  如果有异常,将异常代码块抛出并尝试解决
   except 异常类型1:
   解决方案1,用于尝试处理异常
   except 异常类型2:
   解决方案2,用于尝试处理异常
   else:
   如果没有出现任何异常,将会执行此处代码
   except(异常类型1, 异常类型2...)
   针对多个异常使用相同的处理方式
   finally:
   无论有没有异常都要执行的代码

 1 try:
 2     num = int(input("please input your number:"))   # 尝试执行代码
 3     rst = 100/num
 4     print("计算结果是:{0}".format(rst))
 5 except ZeroDivisionError as e:          # 异常实例化e
 6     print("输入错误")                    # 出现错误则执行此代码块
 7     print(e)                            # 打印出实例e
 8     exit()
 9 except Exception as e:                  # 任何异常都拦截到这里
10     print("不知道哪错了,反正就是错了")
11     print(e)

  用户手动引发异常

  当用户需要引发一个异常的时候,可以使用raise 关键字来引发异常

 1 try:
 2     print("I Love Python")
 3     # 手动引发一个异常
 4     raise ValueError
 5     print("mmp")
 6 except NameError as e:
 7     pritn(e)
 8 except ValueError as e:
 9     pritn(e)
10 except Exception as e:
11     print(e)
12 finally:
13     print("有没有异常反正都执行")

  关于自定义异常


    raise异常推荐自定义异常
    自定义异常的时候一般包括以下内容:
      自定义发生异常的异常代码
      自定义发生异常后的问题提示
     自定义发生异常的行数
1 class OwnError(NameError):
2     print("自定义异常的代码块")
原文地址:https://www.cnblogs.com/Burtit/p/9350789.html