廖雪峰Python总结3
1.模块简介
为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件中,这样每个文件包含的代码相对来说就比较少。一个.py文件就称之为一个模块(Module)。
使用模块的好处:
- 提高了代码的可维护性
- 代码不需要从零开始编写
- 避免了函数名和变量名冲突(我们在自己编写模块时,不必考虑会和其他模块冲突,但是我们也要注意,不要与内置函数冲突)
同时引入了包按目录来组织模块的方法。引入了包以后,只要顶层包名不与别人冲突,那么所有的模块都不会与别人冲突。比如同有abc.py,但是一个是hzw.abc.py,一个是xd.abc.py。
每个包目录下都有一个__init__.py文件,这个文件是必须存在的,否则python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码。
也可以有多级目录。
2.使用模块
#!/usr/bin/env python3
# -*- conding: utf-8 -*- #第一第二行是标准注释 'a test module' #模块的文档注释 __author__ = 'Hzw' #作者名称
以上的就是Python的标准文件模块。
#!usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun Oct 7 20:34:27 2018 @author: 18292
""" import sys def test():
args=sys.argv
if len(args)==1:
print("Hello, World!")
elif len(args)==2:
print("Hello",args[2])
else:
print("Too many arguement!") if __name__=='__main__':
test()

用命令行运行hello.py看看:
$ python3 hello.py
Hello,World!
$python hello.py Hzw
Hello, Hzw
3.作用域
一个模块中,我们定义了许多函数和变量,但是有的函数和变量我们希望给别人使用,有的函数和变量我们仅仅希望自己在模块内部使用。在python中,是使用_前缀是实现。
类似于_abc, __abc等
4.模块搜索路径
当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错。python解释器会搜索当前目录,所有已安装的内置模块和第三方模块,搜索路径放在sys的path变量中:
若想添加自己的搜索目录:
- 直接修改sys.path,添加要搜索的目录。(这种方法是在运行时修改,运行结束后失效)。
- 设置环境变量PYTHONPATH,该环境变量内容会被自动添加到模块搜索路径中。
廖雪峰Python总结3的更多相关文章
- 廖雪峰Python电子书总结
函数 1.注意:函数的默认参数必须指向不可变对象 未修改前: def add_end(L=[]): L.append('END') return L 存在的问题:如果连续调用多次,会出现多个 'END ...
- 廖雪峰python教程的第一个疑问
函数的参数一节中提到: def add_end(L = []); L.append('END') return L 正常调用add_end时(也就是有参数传入时): >>> add_ ...
- 廖雪峰Python实战day1
一.按照廖雪峰的教程,安装开发环境,问题不大. 1.异步框架aiohttp:$pip3 install aiohttp 2.前端模板引擎jinja2:$ pip3 install jinja2 3.安 ...
- 【python】廖雪峰python教程学习--基础
No1: 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的 No2: 用r''表示''内部的字符串默认不转义 No3: 以'''开头,敲回车可以换行 No4: 布尔 ...
- 廖雪峰 ---- Python教程
这是小白的Python新手教程,具有如下特点: 中文,免费,零起点,完整示例,基于最新的Python 3版本. Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学 ...
- 廖雪峰Python学习笔记——类和实例
Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...
- 廖雪峰Python学习笔记——序列化
序列化 定义:程序运行时所有变量都存在内存中,把变量从内存中变成可存储或可传输的过程称为序列化pickling,在其他语言中称为serialization,marshalling,flattening ...
- 廖雪峰Python学习笔记——使用元类
元类(MetaClasses) 元类提供了一个改变Python类行为的有效方式. 元类的定义是“一个类的类”.任何实例是它自己的类都是元类. class demo(object): pass obj ...
- 廖雪峰Python笔记
△命令行模式和Python交互模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>:在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就 ...
- 廖雪峰Python总结5
1.错误,调试和测试 程序编写造成了bug(必须修复) 用户输入出错(通过检查用户输入) 异常:无法在程序运行过程中预测的.异常是必须被处理的,否则程序会因为各种问题终止并且退出 1.try: try ...
随机推荐
- windwos API 第七篇 分离路径,组合路径 _splitpath _makepath
函数原型: //Break a path name into components. void _splitpath( const char *path, char *drive, char *dir ...
- wc,sort,uniq,awk,grep
wc awk, sort, uniq grep
- 页面自动执行(加载)js的几种方法
https://www.cnblogs.com/2huos/p/js-autorun.html 一.JS方法1.最简单的调用方式,直接写到html的body标签里面: <html> < ...
- 深入浅出 Java Concurrency (20): 并发容器 part 5 ConcurrentLinkedQueue[转]
ConcurrentLinkedQueue是Queue的一个线程安全实现.先来看一段文档说明. 一个基于链接节点的无界线程安全队列.此队列按照 FIFO(先进先出)原则对元素进行排序.队列的头部 是队 ...
- [转] 允许远程用户登录访问mysql的方法
需要手动增加可以远程访问数据库的用户. 方法一.本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项 ...
- Consul3-使用consul作为配置中心
在前面的文章中学习了consul在windows下的安装配置,然后consul作为spring boot的服务发现和注册中心,详细的参考: https://blog.csdn.net/j9038291 ...
- tensorflow object detection faster r-cnn 中keep_aspect_ratio_resizer是什么意思
如果小伙伴的英语能力强可以直接阅读这里:https://stackoverflow.com/questions/45137835/what-the-impact-of-different-dimens ...
- Lamdba表达式的代码使用讲解
public class Lambda{ public static void main(String[] args) { repeat(10, (i)->System.out.print(&q ...
- 入门servlet:request获取请求体数据
@WebServlet("/RequestDemo5") public class RequestDemo5 extends HttpServlet { protected voi ...
- Highcharts 饼图数值显示在图形上
1.引用js文件 <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1 ...