前一天内容复习:

# 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

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

模块:

#什么是模块? 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))

包:

#什么是包:一群模块文件的集合+__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就行了

day22 模块最后的补充。包。的更多相关文章

  1. 铁乐学Python_Day34_Socket模块2和黏包现象

    铁乐学Python_Day34_Socket模块2和黏包现象 套接字 套接字是计算机网络数据结构,它体现了C/S结构中"通信端点"的概念. 在任何类型的通信开始之前,网络应用程序必 ...

  2. struct 模块解决 TCP黏包问题

    首先来看一下产生黏包现象的一段代码: # server.py 服务端 import socket ​ sk = socket.socket() sk.bind(('127.0.0.1',9000)) ...

  3. 通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题)

    今日作业:通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题) server(服务端) import socket from mult ...

  4. python基础】——python添加模块搜索路径和包的导入

    方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.append("c:\\") 方法二:修改环境变量w用户可以修改系统环境变量PYTHONP ...

  5. 多模块环境下修改包名Rename directory与Rename package

    选中包名->右键Refactor->Rename,如果会弹出的警告框让选择Rename directory和Rename package时,若选择Rename directory,则是只修 ...

  6. day22模块和包

       一.模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(. ...

  7. Python基础之模块:2、包的使用和软件开发目录规范及常用内置模块

    目录 一.包的使用 1.什么是包 2.包的具体使用 1.常规导入 2.直接导入包名 二.编程思想转变 1.面条阶段 2.函数阶段 3.模块阶段 三.软件目录开发规范 1.bin 2.conf 3.co ...

  8. 【转】Maven实战(二)---多模块开发---缺少Jar包

    原博文出于:http://blog.csdn.net/liutengteng130/article/details/41611755    感谢! Maven里面的Jar包经常出现Missing的情况 ...

  9. Maven分模块以及打war包

    我们如何进行模块化开发呢? 我们使用上面的例子进行演示,先进行合理的优化,我们希望dao和service作为通用的底层工具来使用,把它们合并成一个核心模块(core),build成core.jar,简 ...

随机推荐

  1. Netty学习4—NIO服务端报错:远程主机强迫关闭了一个现有的连接

    1 发现问题 NIO编程中服务端会出现报错 Exception in thread "main" java.io.IOException: 远程主机强迫关闭了一个现有的连接. at ...

  2. elasticsearch索引自动清理

    一 es 基本操作 查看所有的索引文件:  curl -XGET http://localhost:9200/_cat/indices?v GET /_cat/indices?v DELETE /fi ...

  3. Solidity函数view,pure,constant的用法

    函数访问权限:public,external,private,internal //子类可以得到父类下面的方法,父类用了public,external的话 pragma solidity ^; con ...

  4. 业务侧有大量timeout请求超时日志

    故障背景:程序日志发现有程序请求数据库有大量的timeout请求故障时间:xxx~xxx 故障排查:排查应用服务器和数据库服务器网络和其它硬件监控没有断点,数据库监控请求数当时时间段几乎为0 故障分析 ...

  5. html5中如何去掉input type date默认

    html5中如何去掉input type date默认样式 2.对日期时间控件的样式进行修改目前WebKit下有如下9个伪元素可以改变日期控件的UI:::-webkit-datetime-edit – ...

  6. 安装elasticsearch 5.x, 6.x 常见问题(坑)的解决

    本人在elasticsearch 5.x, 6.x 安装过程中遇到了一些问题: 警告提示 [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] una ...

  7. linux进程内存布局

      一个程序本质上都是由 BSS 段.data段.text段三个组成的.这样的概念在当前的计算机程序设计中是很重要的一个基本概念,而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分 ...

  8. 本文转自 MyEclipse 2015反编译插件安装

    本文转自MyEclipse 2015反编译插件安装 分享一下下载插件的地址,百度网盘:链接:http://pan.baidu.com/s/1nturiAH 密码:yk73 其次:我来说下具体操作步骤: ...

  9. 使用 Apache 来限制访问 Confluence 6 的管理员界面

    限制特定的 IP 地址可以访问管理员后台 Confluence 的管理员控制台界面对整个应用来说是非常重要的,任何人访问 Confluence 的控制台不仅仅可以访问 Confluence 安装实例, ...

  10. LeetCode(1): 两数之和

    本内容为LeetCode第一道题目:两数之和 # -*- coding: utf-8 -*- """ Created on Sun Mar 10 19:57:18 201 ...