Python基础学习2---模块
模块
你已经学习了如何在你的程序中定义一次函数而重用代码。如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以 .py 为扩展名。
import sys
print 'The command line arguments are:'
for i in sys.argv:
print i
#print '\n\nThe PYTHONPATH is', sys.path, '\n'
导入sys 模块后 使用for in 遍历sys里面的argv数组 讲结果依次输出, 默认是程序路径为列表的第一个参数。
字节编译的.pyc文件
输入一个模块相对来说是一个比较费时的事情,所以Python做了一些技巧,以便使输入模块更加快一些。
一种方法是创建 字节编译的文件 ,这些文件以 .pyc 作为扩展名。字节编译的文件与Python变换程序的中
间状态有关。当你在下次从别的程序输入这个模块的时
候, .pyc 文件是十分有用的——它会快得多,因为一部分输入模块所需的处理已经完成了。另外,这些
字节编译的文件也是与平台无关的。所以,现在你知道了那些 .pyc 文件事实上是什么了
from import 语句
如果想要输入argv变量到你的程序中(避免每次都要打开sys) 那么就可以使用from sys import argv语句 如果你想要输入所有sys模块使用的名字 那么还可以使用
from sys import *语句, 这个语句适用于所有模块。
模块的_name_
每一个模块都有一个名称,在模块中可以通过语句来找出模块的名称,这在一个场合非常适用--当一个模块被第一次输入的时候,这个模块的主快就会被执行
假如我们只想在程序本身被适用的时候运行主块,而它在被别的模块输入的时候不运行主块,我们可以通过模块的_name_属性来完成。
自定义模块
自定义模块就是适用自己的方法来写一个模块,在模块内我们封装一些代码,然后在其他地方可以直接import来进行导入使用。
def sayhi():
print 'Hi, this is mymodule speaking.'
version = '0.1'
# End of mymodule.py
import mymodule
mymodule.sayhi()
print 'Version', mymodule.version
这样就可以导入一个mymodule文件进行使用了,代码mymodule.version 就是通过点语句来获取具体的属性值。
同时也可以使用from .... import方法进行构造:
from mymodule import sayhi, version
# Alternative:
# from mymodule import *
sayhi()
print 'Version', version
dir()函数
接触过linux的应该都知道dir的命令意思,就是列举模块定义的标识符。标识符有函数、类和变量。
当我们需要为dir()提供一个模块名的时候, 它返回模块定义的名称列表。如果不提供参数那么就会显示当前模块中定义的名称列表。
使用dir函数
在python中输入
import sys
dir(sys)
即可显示sys模块中定义的名称列表。
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', '_mercurial', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_traceback', 'exc_type', 'exc_value', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'getwindowsversion', 'hexversion', 'last_traceback', 'last_type', 'last_value', 'long_info', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'py3kwarning', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions', 'winver']
>>>a = 5
>>> dir()
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a', 'sys', 'version']
>>> del a
>>> dir()
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'sys', 'version']
>>>
为了观察 dir 的作用,我们定义一个新的变量 a 并且给它赋一个值,然后检验 dir ,我们观察到在列表中增
加了以上相同的值。我们使用 del 语句删除当前模块中的变量/属性,这个变化再一次反映在 dir 的输出
中。
关于 del 的一点注释——这个语句在运行后被用来 删除 一个变量/名称。在这个例子中, del a ,你将无
法再使用变量 a ——它就好像从来没有存在过一样。
Python基础学习2---模块的更多相关文章
- python基础学习笔记——模块
自定义模块 我们今天来学习一下自定义模块(也就是私人订制),我们要自定义模块,首先就要知道什么是模块啊 一个函数封装一个功能,比如现在有一个软件,不可能将所有程序都写入一个文件,所以咱们应该分文件,组 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- python基础学习10
python基础学习 内容概要 文件内光标的移动 文件数据修改 函数简介 函数语法结构 内容详情 文件内光标的移动 with open(r'路径','r',encoding='utf8') as f: ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- 十八. Python基础(18)常用模块
十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...
- Python基础-包与模块
Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...
- (一)python基础学习
根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...
随机推荐
- C的指针,真的很经典
工作以后,一直使用C++,也做过Objective C,各种类的方法封装得很好,使用很简单,今天偶尔翻看一下 严蔚敏 的 <数据结构>,第一个程序demo就看了半天,一是由于demo的变量 ...
- chapter9_3 协同程序实现迭代器
将循环迭代器视为"生产者-消费者"模式的一种特例:迭代器产生的数据供循环体消费. 因此,用协同程序写迭代器就理所当然了.因为协同程序可以一改传统调用者与被调用者之间的关系. 有了这 ...
- log4j.properties文件的配置
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松 ...
- SQL 课程 子查询
今天,我主要学习了子查询的内容. create database lianxi0720 go use lianxi0720gocreate table bumen( bcode int primary ...
- 免费开源的boostrap模板
百度查不到,奶奶的,百度好多国外技术类文章的都查不到 https://colorlib.com/wp/free-html5-admin-dashboard-templates/ 有没有FQ软件介绍呀?
- Python基础篇-day4
本节目录: 1.字符编码 2.函数 2.1参数 2.2变量 2.3返回值 2.4递归 2.5 编程范式 2.6 高阶函数 *************************************** ...
- GITLAB管理自己的私有源码
github是很好的公开源码管理器,但是,私有项目,需要付费才行,比较郁闷,特别是个人工作者 gitlab(英文我不咋滴),上貌似允许1000个私有项目,其他的权限,还没怎么看,估计简单的项目 ...
- 在Mac OS X系统下 用dd命令将iso镜像写入u盘
一. Mac下将ISO写入U盘可使用命令行工具dd,操作如下: 1.找出U盘挂载的路径,使用如下命令:diskutil list2.将U盘unmount(将N替换为挂载路径):diskutil unm ...
- iOS 2x 3x
iOS中: 备注: Retina是一种显示技术,可以将把更多的像素点压缩至一块屏幕里,从而达到更高的分辨率并提高屏幕显示的细腻程度.而其最初该技术是用于苹果的iPhone4上.其屏幕分辨率为960×6 ...
- CentOS ulimit
Linux 文件系统设置 文件句柄数 ulimit -n 查看 echo "* - nofile 65536" >> /etc/security/limits.conf ...