廖雪峰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 ...
随机推荐
- Luogu P1401 城市(二分+网络流)
P1401 城市 题意 题目描述 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最 ...
- 【心无旁骛】vuex-typescript-example
我不惮以最大的赞美去赞美这样的项目,真的是非常有创意又有能力. 先放上我喜欢的这个项目的开源地址:https://github.com/gluons/vuex-typescript-example 我 ...
- Linux下使用SSH命令行传输文件到远程服务器
目标:CentOS 7 调整 home分区 扩大 root分区 总体过程: 把/home内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/root文件系统,新建/home ,恢复/home内容 ...
- Ionic 不随系统字体而变化
1.添加插件phonegap-plugin-mobile-accessibility cordova plugin add https://github.com/phonegap/phonegap-m ...
- 第三章 Odoo 12 开发之创建第一个 Odoo 应用
Odoo 开发通常都需要创建自己的插件模块.本文中我们将通过创建第一个应用来一步步学习如何在 Odoo 中开启和安装这个插件.我们将从基础的开发流学起,即创建和安装新插件,然后在开发迭代中更新代码来进 ...
- 关于mysql8授权的问题,mysql萌新小白采坑记录
记录本人第一次使用mysql时踩的坑,因为我从官网下载最新的版本8.0.15msi版本的,直接下一步下一步安装完成之后,本地访问正常,然后服务器安装访问也正常.然后本地连接服务器上的mysql时报错. ...
- sas单变量的特征分析
sas单变量的特征分析 大炮,我有个烦恼,我领导最近老叫我单变量结合因变量分析,但是都是分段分析,我总是写proc sql然后group by ,但是这个过程好无聊啊,有木有什么新的代码,让我可以分析 ...
- 修改CentOS6.5主机名引起MySQL5.6.35服务问题
本来是心血来潮修改CentOS6.5的主机名 /****** 修改CentOS6.5默认主机名 ******/ .备份系统网络配置文件 [root@localhost ~]# cp /etc/sysc ...
- GC Roots的几种对象
在java语言里,可作为GC Roots的对象包括下面几种: >虚拟机栈(栈帧中的本地变量表)中的引用的对象: >方法区中类静态属性引用的对象: >方法区中常量引用的对象: > ...
- 2019-7-15-win10-uwp-在笔迹开始书写拿到书写移动事件
title author date CreateTime categories win10 uwp 在笔迹开始书写拿到书写移动事件 lindexi 2019-7-15 8:58:5 +0800 201 ...