Python学习笔记-模块介绍(一)-模块概念和基本使用

python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题。模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用,除了系统默认的模块不需要导入外。导入直接使用如下语法:

import 模块名称(不要.py后缀)

这样导入成功后,就可以在另外一个模块中使用被导入模块的功能函数或对象了。先举例如下,比如在D:\temp目录下建立python模块:module_1.py,内容如下:

# -*- coding:utf-8 -*-‘‘‘module_1.py模块的内容‘‘‘name = "铁木箱子"siteurl = "http://www.mzone.cc"

上面第一行是指定编码格式,因为python默认是按照ascii编码来处理的,因此就无法处理非英文语言了,通过指定编码就可以实现国际化效果。第二行是注释信息,使用”’进行注释。然后,我们通过D:\temp目录进入到python的命令行模式,这样就可以将当前目录(d:\temp)作为工作目录了,从而也就可以顺利的找到了module_1这个模块了,如下:

D:\temp>pythonPython 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>>

此时如果我们直接输入print(siteurl),系统则会报错,siteurl变量未定义:

>>> print(siteurl);Traceback (most recent call last):File "<stdin>", line 1, in <module>NameError: name ‘siteurl‘ is not defined>>>

所以我们需要先导入module_1的内容才算定义了siteurl变量,不过要注意的是导入的模块的变量并不是定义在顶层命名空间,而是在模块的命名空间中,因此使用如下方式导入后的打印变量如下:

>>>import module_1>>>print(module_1.siteurl)

如果直接使用print(siteurl),仍然还是会报siteurl未定义的错误,原因就是上面说到的命名空间的问题。如果想要直接在顶层命名空间中使用该变量,可以使用如下导入方式:

>>>from module_1 import siteurl>>>print(siteurl)

这样就可以将module_1模块中的siteurl变量导入到顶层命名空间了,直接使用变量也就不会报错了。当然我们也可以为导入的变量重命名,如下:

>>>from module_1 import siteurl as myurl>>>print(myurl)

这样就可以将siteurl的值赋给myurl这个变量了,因为是使用了from…import语句,因此是将变量绑定在顶层命名空间,我们也就可以直接使用变量名了。

需要注意的是无论是使用import还是使用from..import的方式导入模块,其实都是在告诉python解释器要加载指定的模块,并执行模块中的所有语句,因此如果模块中有类似print的语句时,我们在导入的过程中也会看到这些语句的输出。

对于每个模块的导入,python解释器只会导入一次,即使重复使用import和from…import语句,也只有在PVM检测到该模块没有被导入时才执行导入动作。即使后来你修改了模块的源代码,但没有重启PVM,python解释器仍然是使用之前导入的内容在处理。如果需要重新载入修改后的源码,一是退出python的交互模式后再进入,二是直接使用reload语句,如下:

>>>reload(module_1)<module ‘module_1‘ from ‘module_1.py‘>

我们可以看到系统提示重新加载了module_1模块的源文件,我们修改内容后使用该方法重新导入后再执行就可以看到修改后的内容了。

时间: 2024-07-28 22:07:00

Python学习笔记-模块介绍(一)-模块概念和基本使用的相关文章

python学习笔记(图表生成matplotlib模块下载安装)

最近博主在找工作换新环境.昨天电话面试中问到python中threading模块进行接口性能测试的时候.如何生成性能测试报告 我现在还停留在打印在屏幕中.所以今天想着是否可以生成相应的性能测试报告 首先想到的是python是否支持生成图表.有很多模块可以支持 博主这里就先试一试matplotlib模块 具体这个模块的来源.我就不细说明了.直接就是下载安装 这里给出pypi的下载地址: https://pypi.python.org/pypi/matplotlib/ 根据需要的版本下载对应的安装包

Python学习笔记-IP地址处理模块Ipy

IP地址处理模块Ipy IPy模块可以很好的辅助我们高效完成IP的规划工作. 参考:https://github.com/autocracy/python-ipy 安装IPy模块 [[email protected] ~]# python36 -m easy_install -i http://pypi.douban.com/simple/ IPy 导入模块 In [12]: from IPy import IP 1.IP地址.网段的基本处理 通过version区分IPv4和IPv6: In [

Python学习笔记六(常用模块、面向对象基础)

一.random模块 import random print(random.random()) #0-1之间的小数 print(random.randint(1,5)) #1-5之间(包括1和5)的整数 print(random.randrange(1,5)) #1-5之间(包含1,不好包含5)的整数 print(random.choice(['a','b','c'])) #给定列表中任意元素 print(random.sample(['a','b','c','d'],2)) #给定列表中任意n

Python学习笔记十六_模块结构调整

一.什么是模块结构调整 当一个脚本中有大量的配置.方法及接口时,脚本往往显得十分臃肿.为了代码更易读,可以将一个繁杂的脚本根据不同的功能放在不同的文件夹中分类管理,即模块结构调整. 二.模块结构调整实例 下面根据一个具体的例子来看一下如何拆分调整代码 1.根据正常人的思维写代码完成功能 代码需求: (1) 注册接口: (a) 写一个注册接口,密码存成密文 (b) 数据存到redis,redis的key用string类型 (c) Amy  7869d295e566295b51eec5d6bed67

python学习笔记-Day7(configparser模块、shutil、压缩与解压模块、subprocess)

configparser模块 # configparser用于处理特定格式的文件,其本质上是利用open来操作文件 # 下边我们就创建这种特定格式配置文件,来操作以下这里模块方法 --------------test.conf---------------- [section1] # configparser 会认定以中括号括住的为一个节点(node) k1 = 111 # 节点下,每一行配置文件为键值对存在(也可以写成 k2:123) k2 = v2 k3 = 123 k4 = True k1

python学习笔记--Win7安装paramiko模块

在安装软件的过程中,一定要找对正确的安装方法,之前找了很多解决问题的方法,但是发现大多数的方法都不对,浪费了时间,问题也很难解决. 文章借鉴 http://www.cnblogs.com/saneri/p/5715661.html 1.首先下载PyCrypto for Python  根据自己的python版本选择对应的PyCrypto,下载默认安装即可. 地址为: http://www.voidspace.org.uk/python/modules.shtml#pycrypto 2.下载安装e

python学习笔记一 介绍、基本语法、流程控制

1.用户输入 #!/usr/bin/env python #_*_coding:utf-8_*_ #name = raw_input("What is your name?") #only on python 2.x name = input("What is your name?") print("Hello " + name ) 2.输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即: #!/usr/bin/

Python 学习笔记(2) - 基本概念、运算符与表达式

字符串 - 可以使用 3 种形式 - 单引号 :「'your string'」 - 双引号 :「"your string"」 - 三引号 :「'''your string''' 或 """your string """」 ,可以定义多行字符串. 1 #单引号 2 print 'this is string' 3 4 #双引号 5 print "this is string" 6 7 #三引号 - 单引号 8

Python学习笔记10—几个名词概念

循环(loop),指的是在满足条件的情况下,重复执行同一段代码.比如,while 语句. 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项.比如,for 语句. 递归(recursion),指的是一个函数不断调用自身的行为.比如,以编程方式输出著名的斐波纳契数列. 遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次. 迭代 我们常常将哪些能够用诸如循环语句之类的方法来一个一个读取元素的对象,就称之为可迭代的对象.那么用来循环的如 f

python学习笔记12-模块使用

python学习笔记12-模块使用 模块os,sys 什么是模块? 模块os,sys 模块是Python组织代码的一种基本方式 一个Python脚本可以单独运行,也可以导入到另外一个脚本运行,用import hello语句来导入,不用加入.py 什么是Python的 包? Python的模块可以按照目录组织为包 创建一个包的步骤: 创建一个名字为包名的目录 在改目录下创建一个__init__.py文件 根据需要,在该目录下存放脚本文件或已编译的扩展及子包 import pack.m1,pack.