python学习day21 模块和包

#序列化模块
    #数据类型转化成字符串的过程
    #为了方便存储和网络传输
    #三种模式:
        #json:
            #dumps
            #loads
            #dump 和文件有关
            #load  不能load多次
            # import json
            # data = {'username':['梨花','二恶能子'],'sex':'male','age':16}
            # json_dic = json.dumps(data,sort_keys=True,indent=4,separators=(',',':,'),ensure_ascii=False)
            # print(json_dic)
        #pickle:
            #方法与json一样
            #dump和load的时候,文件是以rb,wb
            #支持python所有的数据类型
        #shelve:
            #open方法
            #获取了一个文件句柄
            #操作和字典类似
# 把解决一类问题的模块放在同一个文件夹里 —— 包
# import os
# os.makedirs('glance/api')
# os.makedirs('glance/cmd')
# os.makedirs('glance/db')
# l = []
# l.append(open('glance/__init__.py','w'))
# l.append(open('glance/api/__init__.py','w'))
# l.append(open('glance/api/policy.py','w'))
# l.append(open('glance/api/versions.py','w'))
# l.append(open('glance/cmd/__init__.py','w'))
# l.append(open('glance/cmd/manage.py','w'))
# l.append(open('glance/db/models.py','w'))
# map(lambda f:f.close() ,l)

# import glance.api.policy as policy
# policy.get()
#
# from dir.glance.api import policy
# policy.get()

# import sys
# sys.path.insert(0,'C:\\Users\\Administrator\\PycharmProjects\\s9\\day21\\dir')
# # print(sys.path)
# from glance.api import policy
# policy.get()

# from dir import glance
# glance.db.models.register_models('mysql')
# glance.api.policy.get()

# 使用绝对路径 不管在包内部还是外部 导入了就能用
# 不能挪动,但是直观

# from dir import glance
# glance.api.policy.get()
# 相对路径
# 可以随意移动包 只要能找到包的位置,就可以使用包里的模块
# 包里的模块如果想使用其它模块的内容只能使用相对路径,使用了相对路径就不能在包内直接执行了

# 1/0
# name
# 2+'3'
# [][3]
#{}['k']
# try:
#     print('1111')
#     # 1/0
#     print('2222')
#     # name
#     # 2+'3'
#     # [][3]
#     # {}['k']
#     ret = int(input('number >>>'))
#     print(ret*'*')
# except ValueError:
#     print('输入的数据类型有误')
# except Exception:
#     print('你错了,老铁')
# else:
#     print('没有异常的时候执行else中的代码')
# print('===========')
# def func():
#     try:
#         f = open('file','w')
#         ''''''
#         return True
#     except:
#         return False
#     finally:
#         print('执行finally了')
#         f.close()
#
# print(func())





# 程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容
# 使用try和except就能处理异常
    #try是我们需要处理的代码
    #except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码
    #except支持多分支
    #有没有一个能处理所有错误的类型 : Exception
        # 有了万能的处理机制仍然需要把能预测到的问题单独处理
        # 单独处理的所有内容都应该写在万能异常之前
    # else : 没有异常的时候执行else中的代码
    # finally : 不管代码是否异常,都会执行
        # finally和return相遇的时候 依然会执行
        # 函数里做异常处理用,不管是否异常去做一些收尾工作


# try:
#     main()
# except Exception:
#     pass

# try:
#     print('1111')
#     # 1/0
#     print('2222')
#     # name
#     # 2+'3'
#     # [][3]
#     # {}['k']
#     ret = int(input('number >>>'))
#     print(ret*'*')
# except Exception as error:
#     print('你错了,老铁',error)

猜你喜欢

转载自www.cnblogs.com/wujunjie-sir/p/9235869.html