10.1 模块

>>> import math
>>> math.sin(0)
0.0

  10.1.1 模块是程序

假设自己写的hello.py放在c:\python目录中,下面的方法就是导入自己的模块:

  import sys

  sys.path.append('c:/python')   //  假设自己的程序保存在 c:\python

  import hello

如果hello模块被修改了,需要重新导入:

  hello = reload(hello)

  10.1.2 模块用于定义

  10.1.3 让你的模块可用

  如何让sys.path在一开始就包含正确的目录,两种方法:

一种是将模块放在合适的位置:

弊端:不希望自己的模块填满python解释器的目录 / 没有权限 / 想将模块放在其他地方。

>>> import sys, pprint
>>> pprint.pprint(sys.path)
['',
'C:\\Program Files\\Python36\\Lib\\idlelib',
'C:\\Program Files\\Python36\\python36.zip',
'C:\\Program Files\\Python36\\DLLs',
'C:\\Program Files\\Python36\\lib',
'C:\\Program Files\\Python36',
'C:\\Program Files\\Python36\\lib\\site-packages']

另外是告诉解释器去哪找模块:

PYTHONPATH环境变量:

set PYTHONPATH = %PYTHONPATH%; C:\python

10.1.4 包

为了组织好模块,你可以将他们分组为包(package)。

当模块存储在文件中时(扩展名.py),包就是模块所在的目录。为了让python将其作为包对待,它必须包含一个名为__init__.py的文件。

10.2 探究模块

10.2.1 模块中有什么

dir:

>>> import copy
>>> dir(copy)
['Error', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_copy_dispatch', '_copy_immutable', '_deepcopy_atomic', '_deepcopy_dict', '_deepcopy_dispatch', '_deepcopy_list', '_deepcopy_method', '_deepcopy_tuple', '_keep_alive', '_reconstruct', 'copy', 'deepcopy', 'dispatch_table', 'error']
>>>

__all__: 定义__all__,  __all__会过滤掉不用的变量,函数和类。

10.2.2 用help获取帮助

>>> help(copy)

10.2.3 文档

>>> print(copy.__doc__)

10.2.4 使用源代码

>>> print(copy.__file__)

10.3 标准库:一些最爱

10.3.1 sys

与python解释器密切关联的变量和函数

argv

exit

modules

path

platform

stdin

stdout

stderr

10.3.2 OS

提供访问操作系统的方法

10.3.3 fileinput

10.3.4 集合、队和双端队列

10.3.5 time

10.3.6 random

10.3.7 shelve(简单的存储方案)

10.3.8 re(正则表达式的支持)

10.3.9 其他有趣的标准模块

functools:

difflib

hashlib

csv

python学习(十) 自带电池的更多相关文章

  1. python学习(十九)常见的第三方库

    原文链接:http://www.limerence2017.com/2017/12/28/python19/#more 介绍几个python中常见的第三方库. Pillow Pillow简称PIL,是 ...

  2. python学习(十)元类

    python 可以通过`type`函数创建类,也可通过type判断数据类型 import socket from io import StringIO import sys class TypeCla ...

  3. Python学习十四:filter()

    Python 中内置了filter()函数用于过滤序列. 使用方法: filter()接收一个函数和一个序列. filter()把传入的函数依次作用于每一个元素,然后依据返回值是True还是False ...

  4. python学习(十五) 内建模块学习

    介绍python的几个內建模块,原文链接 1 python的时间模块datetime 取现在时间 from datetime import datetime now = datetime.now() ...

  5. python学习(十四)正则表达式

    原文链接 ## 什么是正则表达式`正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑 ...

  6. python学习笔记-参数带*

    #!/usr/bin/python # -*- coding: utf-8 -*- def powersum (power,*args): #所有多余的参数都会作为一个元组存储在args中     s ...

  7. python学习(十八)爬虫中加入cookie

    转载自:原文链接 前几篇文章介绍了urllib库基本使用和爬虫的简单应用,本文介绍如何通过post信息给网站,保存登陆后cookie,并用于请求有权限的操作.保存cookie需要用到cookiejar ...

  8. Python之路【第二十四篇】:Python学习路径及练手项目合集

      Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...

  9. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  10. Python学习笔记(十四)

    Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...

随机推荐

  1. CSS3 content属性学习

    css3中出现了 ":before",":after"伪类, 你可以这样写: h1:after{ content:'h1后插入的文本'; ... } 这两个选择 ...

  2. Selenium学习笔记(1) - 自动化测试体系与原理

    技术体系 基于代码的测试(Code-Based Testing) 基于协议的测试(Protocol-Based Testing) 基于界面的测试(GUI-Based Testing) 工作原理 基于代 ...

  3. gulp 相关文章

    1.https://www.cnblogs.com/sxz2008/p/6370221.html 2.https://www.cnblogs.com/wujie520303/p/4964931.htm ...

  4. elasticsearch 2.2+ index.codec: best_compression启用压缩

    官方说法,来自https://www.elastic.co/guide/en/elasticsearch/reference/2.2/index-modules.html#_static_index_ ...

  5. Python基础学习(第8天)

    先补充些iter函数的用法:iter()其实就是一个迭代器,参数可传个list.dict等等,然后可通过调用next函数获取下一个元素,默认并未指向对象的第一个元素,可理解为指向了第一个元素的前面的位 ...

  6. 理解字符串 Boyer-Moore 算法

    作者: 阮一峰 上一篇介绍了 kmp算法 但是,它并不是效率最高的算法,实际采用并不多. 各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法. Boy ...

  7. Android 自定义组件之如何实现自定义组件

    参考链接:http://blog.csdn.net/jjwwmlp456/article/details/41076699 简介 Android提供了用于构建UI的强大的组件模型.两个基类:View和 ...

  8. Arcgis Android API开发之离线地图

    最近一直在倒腾Arcgis Android API等相关的东西,想把自己的做的图放到地图上去,也就是离线地图,穷人一般是没有钱的,一个月好几十的流量是开不起的,所以就左捉摸,右思考,看着API里面有离 ...

  9. android自定义view系列:认识activity结构

    标签: android 自定义view activity 开发中虽然我们调用Activity的setContentView(R.layout.activity_main)方法显示View视图,但是vi ...

  10. C++ 资源管理 —— RAII

    RAII:在构造函数中申请资源,在析构函数中释放资源. 1. RAII 自动实现锁资源的释放 void bad() { m.lock(); f(); if (COND) return; m.unloc ...