zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CF821E 【Okabe and El Psy Kongroo】
    BZOJ1231: [Usaco2008 Nov]mixup2 混乱的奶牛
    P1896 [SCOI2005]互不侵犯
    QBXT Day 2 记录
    CF467C George and Job
    【luogu P3373 线段树2】 模板
    【luogu P1306 斐波那契公约数】 题解
    【luogu T24743 [愚人节题目5]永世隔绝的理想乡】 题解
    【luogu P1903 [国家集训队]数颜色】 题解
    莫队算法~讲解
  • 原文地址:https://www.cnblogs.com/2012-dream/p/7846061.html
Copyright © 2011-2022 走看看