Python语言学习:模块

一、模块

1. 模块(Module):以.py结尾的文件,包含python对象定义和python语句。使代码段更容易理解和使用。

模块分为两种:标准库(直接导入的库)和第三方库(需要下载安装的库)。

2. 模块的引入

a. import语句:当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的所有目录的列表。

如果想要导入模块support.py,需要把命令放在脚本的顶端。

import module例如:import sys

b.from...import语句:从模块中导入一个指定的部分到当前命名空间中。

from modname import name

c.from...import * 语句:把一个模块的所有内容全部导入到当前的命名空间也是可行的

from modname import *

3.索引路径:当导入一个模块,python解析器对模块位置的搜索顺序如下:

a.当前目录

b.如果不在当前目录,python则搜索在shell变量PYTHONPATH下的每个目录

c.如果还找不到,python会察看默认路径,Unix下,默认路径是/usr/local/lib/python/

模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

4. PYTHONPATH变量:作为环境变量,PYTHONPATH由装在一个列表里的许多目录组成。PYTHONPATH的语法和shell变量PATH一样。

a. 在windows系统,典型的PYTHONPATH如下:

set PYTHONPATH= c:\python27\bin;
具体看安装的默认路径

b.在Unix系统,典型的PYTHONPATH如下:

set PYTHONPATH = /usr/local/lib/python
具体看安装的默认路径

  

5.命名空间和作用域

a. 变量是拥有匹配对象的名字(标识符)。

命名空间是一个包含了变量名称(键)和它们各自相对应的对象(值)的字典。

一个python表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和全局变量重名,则局部变量会覆盖全局变量。

每个函数都有自己的命名空间。类的方法的作用域规则和通常函数一样。

python会智能的猜测一个变量是局部还是全局。它假设任何函数内赋值的变量都是局部的。因此,如果给函数内的全局变量赋值,需要使用到global语句。这个语句会告诉python这个变量是全局变量。

如果不给函数的变量前加global,那么久会报UnboundLocalError的错误,如下:

# Author:Crystal
#!/usr/bin/env python
Money = 2000
def AddMoney():  # 需要加入global Money这个声明,python才知道以下这个Money和上面定义的局部变量Money不同,这个是全局变量Money
    Money = Money +1    #UnboundLocalError: local variable ‘Money‘ referenced before assignment
print (Money)
AddMoney()
print (Money)

  

6. dir()函数:一个排好序的字符串列表,内容是一个模块里定义过的名字

#! /usr/bin/evn python

import math     #导入内置math模块
content = dir(math)
print (content) 

备注:特殊字符串变量_name_指向模块的名字,_file_指向该模块的导入文件名

7.globals()和locals()函数:可被用来返回全局和局部命名空间里的名字。

如果在函数内部调用locals(),返回的是所有能在该函数里访问的命名

如果在函数内部调用globals(),返回的是所有在该函数里能访问的全局名字

两个函数的返回类型都是字典。所以名字们能用key()函数摘取

8. reload()函数:重新导入之前顶层的代码进行执行的操作。

reload(module_name)

  

9. python中的包:是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的python的应用环境。

简单来说,包就是文件夹,但该文件夹下必须存在_init_.py文件,该文件的内容可以为空。_init_.py用于标识当前文件夹是

一 个包。包由类组成,类是一个文件中放置很多函数组成。

10. 模块例子:

# Author:Crystal
#! /usr/bin/env python

‘‘‘import sys
#print(sys.path)    #path是打印环境变量
print(sys.argv)    #argv打印绝对路径

import os
#cmd_res= os.system("dir")    #os.system只是执行命令,不保存结果
cmd_res= os.popen("dir").read()   #os.popen可以执行命令并保存结果,read()是将结果读取出来
print(cmd_res)
os.mkdir("new_dir")     #os.mkdir增加新的文件夹‘‘‘

import login       #调用同一个目录下的文件,如果调用的文件和此文件不在同一个目录,就把被调用的文件放置在第三方库的目录下进行调用

  

原文地址:https://www.cnblogs.com/heiqiuxixi/p/12245312.html

时间: 2024-10-02 05:56:35

Python语言学习:模块的相关文章

Python语言学习笔记

获得人生中的成功需要的专注与坚持不懈多过天才与机会.  ——C.W. Wendte Python将很快成为你最喜欢的编程语言! Qt库?  PyQt  Perl-Qt 简单易学,功能强大,高效率的高层数据结构,简单而有效地实现面向对象编程. Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发. 注重的是如何解决问题而不是编程语言的语法和结构. wxPython,Twisted,Boa Constru

python入门学习--模块

1.模块 可以把模块想象成导入到python以增强其功能的扩展.需要使用特殊的命令import来导入模块.用import导入了模块,然后按照"模块.函数"的格式使用这个模块的函数, 它是这样起作用的. 上图为把年龄转换为整数(32)而不是浮点数(32.0),使用int函数.注:int函数/类型把参数转换成整数是会自动向下取整,所以在转换过程中,math.floor是多余的, 可以直接使用函数int(32.9). 1.1 cmath和复数 虚数用模块cmath(即complex math

python语言学习1

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 龟叔给Python的定位是“优雅”.“明确”.“简单”,所以Python程序看上去总是简单易懂 初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序 python语言是一种很高级的语言 写代码的时候代码量很小,但是所带来的缺点就是运行速度慢 C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度.充分发挥硬件性

#python基础学习模块:marshal 对象的序列化

#标准库地址:https://docs.python.org/2/library/marshal.html"""有时候,要把内存中一个对象持久化保存磁盘或者序列化二进制流通过网络发送到远程主机上,python有很多模块提供了序列化与反列化功能,如:marshal, pickle, cPickle等 注意: marshal并不是一个通用的模块,在某些时候它是一个不被推荐使用的模块,因为使用marshal序列化的二进制数据格式还没有文档化,在不同版本的Python中,marsha

Python 语言学习

python 语言是什么? 1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 4 print("hello world") #!/usr/bin/env python # -*- coding:utf8 -*- print("hello world") 原文地址:https://www.cnblogs.com/flywithwind42/p/9431087.html

学习python语言-----logging模块(转 记录与学习)

一.灵活配置日志输出 import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='/tmp/test.log', #若无此项,则默认输出于控制台 filemode='w') #w用于刷新纪录,a用于增加记录

python语言学习笔记整理

什么是程序? 程序等于数据结构加算法,那么数据结构是一个静态的东西,算法是一个动态的东西,我们用一个新的语言编写这个程序,我们要考虑到语言也主要由数据结构和算法相关的东西,或静态或动态的东西来构成,所以我们可以把一门语言进行拆解,比如现在这门语言就是Python,那么Python这门语言是就拆解为面向对象和面向过程,那么我们知道以前的程序语言C语言就是面向过程的语言,而C++就是面向对象的语言,然后横向的我们还要考虑数据结构和算法.这样我们可以把一门语言的学习氛围四大块,第一款就是面向过程的数据

开始python语言学习之旅

上学期刚刚学完C语言,虽然对编程挺感兴趣的,能自己编写程序来解决问题,想想就兴奋.可是学完了一学期的C语言发现自己会的只是一点点,更不用说自己编写程序来解决问题.不过学了python还没两周我就可以画出几何图形,还可以控制电脑让它给我播放音乐,毫无疑问我已经被python深深吸引了.为了更好的学习这门课,提升我们的学习兴趣,我希望老师多给我们举一些实用的例子,还有就是教会我们用电脑思维来解决问题.提升我们的见识面,结合生活让python无处不在!在这里先谢谢我们的肖老师.

Python语言学习 (一)1.2

1. 打开PyCharm,Create Project,选择Pure Python,Location为存放代码的地址,Interpreter为使用的解释器,选择安装过的anaconda的解释器. 2. New Directory,再在文件夹上New Python File.可以开始写代码了:print 'hello world'   点击run按钮就可以执行出结果了:hello world. 在default settings里Editor ->File and Code Templates -