Day-7: 模块知识
Python中,一个.py文件就是一个模块(module);而,包含了多个模块的一个目录,称为包。
每一个包中,都包含一个_init_.py文件,可以是一个空文件,这是Python将普通目录识别为包的特征点。
模块的文件名是directory.module,前面是包含该模块的包的名字,后面是该模块的名字,例如:
文件www.py
的模块名就是mycompany.web.www
,两个文件utils.py
的模块名分别是mycompany.utils
和mycompany.web.utils
。
- 使用模块
导入模块:
1.import sys
2.import cStringIO as StringIO,导入模块同时另命名。配合错误检查功能,可以保证运行环境选择最合适的模块,使程序具有更强的鲁棒性。
try:
import cStringIO as StringIO
except ImportError: # 导入失败会捕获到ImportError
import StringIO
- 作用域
正常的函数和变量名是公开的(public),可以被直接引用,比如:abc
,x123
,PI
等;类似__xxx__
这样的变量是特殊变量,可以被直接引用,但是有特殊用途,__author__显示作者,__name__显示函数名字,__doc__显示文档字符串;类似_xxx
和__xxx
这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc
,__abc
等;
def _private_1(name):
return 'Hello, %s' % name def _private_2(name):
return 'Hi, %s' % name def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)
像_private_2这种私有函数,由于外部调用时,用不到,所以用私有函数隐藏起来。
- 安装第三方模块
shell命令行输入:pip install moudule_name,会依据你输入的模块名搜索官网pypi.python.org上的该模块。
另外,由于官网上模块对应的电脑位数不同,可能无法使用,可以先到国内的非官方库中下载相应的模块,放入C:\Python27\Scripts中后,命令行运行pip install ****,就可以了。
- __future__模块
对于旧版本的代码在新版本中维护时,一次性换到新版本中,可能会一次性产生许多错误,不便调试,使用__future__模块后,可以慢慢地针对新版本改进点进行修改。
# still running on Python 2.7 from __future__ import unicode_literals print '\'xxx\' is unicode?', isinstance('xxx', unicode)
print 'u\'xxx\' is unicode?', isinstance(u'xxx', unicode)
print '\'xxx\' is str?', isinstance('xxx', str)
print 'b\'xxx\' is str?', isinstance(b'xxx', str)
注:本文为学习廖雪峰Python入门整理后的笔记
Day-7: 模块知识的更多相关文章
- python day 8: re模块补充,导入模块,hashlib模块,字符串格式化,模块知识拾遗,requests模块初识
目录 python day 8 1. re模块补充 2. import模块导入 3. os模块 4. hashlib模块 5. 字符串格式:百分号法与format方法 6. 模块知识拾遗 7. req ...
- python模块 re模块与python中运用正则表达式的特点 模块知识详解
1.re模块和基础方法 2.在python中使用正则表达式的特点和问题 3.使用正则表达式的技巧 4.简单爬虫例子 一.re模块 模块引入; import re 相关知识: 1.查找: (1)find ...
- python:常用模块 知识整理
time模块 time.time() # 时间戳:1487130156.419527 time.strftime("%Y-%m-%d %X") #格式化的时间字符串:'2017-0 ...
- python模块知识一 自定义模块、time、datetime时间模块
第五章 模块 1.自定义模块: 模块分类: 内置模块(标准库)-- python解释器自带的.py文件(模块) 第三方模块(各种大神写的)-- 需要额外下载(并发编程pypi) 自定义模块(自己写的) ...
- python模块知识二 random -- 随机模块、序列化 、os模块、sys -- 系统模块
4.random -- 随机模块 a-z:97 ~ 122 A-Z :65 ~ 90 import random #浮点数 print(random.random())#0~1,不可指定 print( ...
- python模块知识四 包和logging日志
11.包 包:文件夹下具有__init__.py文件就是一个包,包用来管理多个模块 包的结构如下: bake ├── __init__.py ├── api ├── __init__.py ├── p ...
- python模块知识三 hashlib 加密模块、collections、re模块
8.hashlib 加密模块 主要用于加密和校验 常见密文:md5,sha1,sha256,sha512 只要明文相同,密文就相同 只要明文不相同,密文就是不相同的 不能反逆(不能解密)--md5 ...
- 正则+re模块知识总结
目录 正则表达式 定义+特点 元字符 量词 贪婪匹配与非贪婪匹配 转义符 re模块 re.findall re.search re.match re.compile re.finditer re.sp ...
- 【知识积累】SBT+Scala+MySQL的Demo
一.背景 由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库.由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累. ...
随机推荐
- opnet点对点通信模型 分类: opnet 2014-05-26 22:15 246人阅读 评论(3) 收藏
网络包含两个节点,一个发送节点,一个接收节点.发送节点按照某种随机的规律产生数据包(包大小和包间隔可自己定义),然后发送给接收节点.传输过程中会有一些随机的差错(误包率也可自己定义).接收节点收到正确 ...
- lnk后缀名打开方式
老娘栽了两次!! 前段时间,设计把设计图发给我,竟然是个后缀"exe"的文件,选择打开方式的时候忘记取消下图勾选: 结果懵逼了... 在网上找了个方法: 1.打开电脑"运 ...
- webpack2 前篇
webpack2 前篇 #webpack 前两天用了一天半时间琢磨了下webpack2,想起去年这时候,面对webpack1那样恶心的文档,前前后后搞了好几次才摸索清楚,那真是吐了. 划重点 其实we ...
- Redis-key的设计技巧
把表名转换为key前缀, 比如: tag: 第二段放置用于区分key的字段--对应mysql中的主键的列名 第三段放置主键值 第三段写列名 用户表user, 转换为redis的key-value存储 ...
- Android中的内容提供者
Android中的内容提供者 为什么需要内容提供者 为了跨程序访问数据.试想如果在App-1中创建了一个私有数据库,App-2是不能直接访问的.因为权限不够,虽然可以使用chmod 777来修改权限, ...
- HDU6055 Regular polygon(计算几何)
Description On a two-dimensional plane, give you n integer points. Your task is to figure out how ma ...
- 带有WS-Security验证的webservice
示例用的是spring+CXF来配置webservice 首先是web.xml配置,将spring,CXF的配置文件加载进去,由于我客户端跟服务端在同一个工程里面,所以配置文件在一块. <con ...
- vue指令v-else-if示例解析
表示 v-if 的 "else if 块".可以链式调用. <div id="app"> <p v-if="isRender&quo ...
- Servlet做简单的ajax增删改查(分页)
jdbc.java package servlet; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...
- WebAPi接口安全之公钥私钥加密
WebAPi使用公钥私钥加密介绍和使用 随着各种设备的兴起,WebApi作为服务也越来越流行.而在无任何保护措施的情况下接口完全暴露在外面,将导致被恶意请求.最近项目的项目中由于提供给APP的接口未对 ...