• day22 模块最后的补充。包。


    前一天内容复习:

    # def func():
    #     a
    #
    # def main():
    #     func()
    #
    # try:
    #     main()
    # except:
    #     pass
    
    # raise NameError
    # try:
    #     raise TypeError('类型错误')
    # except TypeError as e:
    #     print(e)
    
    # class EvaException(BaseException):
    #     def __init__(self,msg):
    #         self.msg=msg
    #     def __str__(self):
    #         return self.msg
    #
    # raise EvaException('类型错误')
    
    # assert 1==2  #if 1==2:
    # 一个程序的执行 必须满足某些条件 不满足 完全不能执行了
    # if 1==2:
    #     print('*'*123)
    
    #try except
    #finally
    View Code

    今天内容概要:模块内容的最后补充。包。

    模块:

    #什么是模块? python代码的文件
    #1.py文件   *****
    #2.包  ***
    #3.内置的模块
    
    # import re
    # re.findall()
    # def findall():
    #     pass
    
    #代码的可读性差,且重复的代码多,写代码困难大
    #将一些复杂的需要重复使用的功能进行归类,分别放到同一个py文件中。
    # 需要调用的时候直接拿来用就可以了。
    
    # import xiaomei
    #一、导入模块时做的事
    #1.看看自己的内存里有没有
        #有就不干活,没有再倒进来
    #2.创建一个命名空间,在这个命名空间中执行代码
    #3.创建了一个xiaomei这个名字,给命名空间中变量和xiaomei绑定在一起
    #4.import方式导入模块中的内容和自己文件中的内容不会冲突
    def drive():pass
    # xiaomei.drive()  #执行模块里的函数
    # print(xiaomei.price)
    
    #二、import ... as:给模块重命名,重命名之后之前的名字就失效了,新名字可以直接使用
    # import xiaomei as xm  #import的名字太长我嫌弃
    # xm.drive()
    # import xiaomei as xm   #当import的模块和我文件中的变量重名的时候
    # def xiaomei():
    #     print(123)
    # xm.drive()
    # if 是mysql数据库:    #当兼容多个模块的相同操作的时候
    #     import mysql as db
    # elif 是oracle数据库:
    #     import oracle as db
    # db.open
    # db.write
    
    #三、import 多个模块
    # import os,re,time
    #
    # os.getcwd()
    # re.findall()
    # time.time()
    # import os
    # import re
    # import time
    #
    # import requests
    #
    # import xiaomei
    #先导入内置的模块
    #再导入扩展模块 :requests beautifulsoup django selenium paramiko
    #最后导入自定义的模块
    
    # from xiaomei import drive,price
    # from xiaomei import drive as d,price as p
    # from import的用法 会直接将导入的内容放在全局,
    # 但是dirve中用到的变量和drive方法是一种绑定关系
    # 如果有同名,就会发生覆盖
    # drive()
    
    # import xiaomei
    # from xiaomei import *
    # from xiaomei import drive,price
    # drive()
    # print(price)
    
    #from .. import *
    #*受到__all__的限制,如果不定义__all__就默认引入所有
    #如果定义了,那么列表中有什么,就能引入什么
    # import time,importlib
    # import xiaomei
    # xiaomei.drive()
    # time.sleep(10)
    # importlib.reload(xiaomei)
    # print('price : ',xiaomei.price)
    
    # from xiaomei import price
    # print(price)
    
    import xiaomei
    # import re
    # import sys
    # print(sys.modules)
    # print(sys.path)
    
    #执行python解释器,已经在内存中加载了一些内置的模块了
    #导入模块的时候,如果模块不存在在sys.modules,才从sys.path给的路径中依次去查找
    #sys.path完全可以决定某个模块能不能被找到(除了已经在内存中加载的一些内置模块)
    
    #import xiaomei
    #当一个py文件被当做一个模块导入的时候,会自动生成一个pyc文件
    #pyc文件是这个代码编译之后的文件,节省了每一次导入代码之后还要编译的时间
    
    # import xiaomei
    # print(dir(xiaomei))
    
    # import builtins
    # print(dir(builtins))
    View Code

    包:

    #什么是包:一群模块文件的集合+__init__
    #py2 : 必须有__init__
    #py3:不是必须的了
    
    # 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)
    
    # from glance.api import policy,versions
    # policy.get()
    #在包中使用模块,就是一直...直到找到模块,import就行了
    View Code

  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/2012-dream/p/7846061.html
Copyright © 2020-2023  润新知