1 导入模块

1.1 问题

本案例要求先编写一个star模块,主要要求如下:

建立工作目录 ~/bin/

创建模块文件 ~/bin/star.py

模块中创建pstar函数,实现打印50个星号的功能

然后练习导入模块,调用模块中的函数:

在交互解释器中导入模块

调用模块的函数

1.2 方案

使用vim当作文本编辑器编写python脚本,使用RHEL6系统中自带的python解释器加载模块。

注意,模块及函数在后续课程中有详细介绍,这里只是因为经常要用到导入模块,所以需要大致了解一下。

模块支持从逻辑上组织python代码。当代码量变得相当大的时候,最好把代码分成一些有组织的代码段,前提是保证它们的彼此交互。

这些代码段是共享的,所以python允许调入一个模块,允许使用其他模块的属性来利用之前的工作成果,实现代码重用。这个把其他模块中属性附加到你的模块中的操作叫做导入(import)。

给定一个模块名之后,只可能有一个模块被导入到python解释器中,所以在不同模块间不会出现名称交叉现象;每个模块都定义了它自己的唯一的名称空间,访问一个模块的属性可以使用句点表示法,比访问star模块中的pstar函数的写法为:star.pstar()。

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:创建目录结构

Linux在执行命令时,它会到PATH环境变量定义的路径中去查找,如果查到则执行,如果查不到则提示命令找不到。

为了使得编写的脚本在任意位置可以直接执行,并支持按TAB键补齐,最好将命令放到PATH环境变量定义的路径中。

在Linux系统中,每个用户的家目录下的bin目录,默认在PATH环境变量中,但是系统默认并没有创建该目录。

[root@py01 ~]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

2)根据PATH变量内容创建bin目录

[root@py01 ~]# mkdir /root/bin

步骤二:创建模块文件

1)创建模块文件

python的模块名就是脚本文件名去掉.py的扩展名,所以star模块的文件名就是star.py。

在创建文件时,不要使用python已有的模块名。因为在import模块时,如果自己创建的模块文件和python自带的模块重名,那么,用户自己创建的模块将被导入,用户也就无法使用python自身的模块了。

判断python是否拥有某个模块,最简单的办法就是,进入到python交互解释器中,然后执行import命令,如果提示ImportError则表示python默认没有该模块。

[root@py01 ~]# cd bin

[root@py01 ~]# vim star.py

2)编写pstar函数

像shell本一样,python脚本文件的第一行也是解释器。

在python中,使用def定义函数,def后面紧跟函数名,函数名后面是一对圆括号,圆括号包含可选的参数。

需要注意的是,()并不是函数名的一部分,另外最后不要丢掉冒号。在python中,如果一个关键字后面有子语句块,那么该关键字的行尾都需要加冒号。

函数体部分(代码组)必须缩进,一般缩进4个空格,而且所有的子语句必须缩进相同的空白。

函数定义只是说有这样的功能,并不执行。所以该程序文件如果直接以脚本的方式执行,那么它不会产生任何输出。

#!/usr/bin/env python

def pstar():

print '*' * 50

步骤三:导入模块并测试

在这里需要注意的是,需要在模块文件所在的目录下打开交互解释器。因为python在导入模块时会在固定的几个位置去搜索模块,如果找到则导入,否则将出错。当前的工作目录也是python在搜索模块时会查找的路径。

[root@py01 bin]# python

Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)

[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import star

解释器需要知识执行的是哪个模块中的函数,所以写法应该是:“模块.函数”。

注意,函数名后面的圆括号不要丢掉,python调用函数使用圆括号,表示执行该函数的意思。如果没有圆括号,只是引用,不调用,也就是不会执行该函数。

>>> star.pstar()

**************************************************

python引入模块教程_python导入模块--案例相关推荐

  1. python如何创建模块教程_Python创建模块及模块导入的方法

    本文实例讲述了Python创建模块及模块导入的方法.分享给大家供大家参考.具体分析如下: python学习手册中写道: 定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为 ...

  2. python导入模块失败_Python导入模块时遇到的错误分析

    当遇到无法导入某个python模块时,可能会是没有安装某个模块,也有可能是某模块在加载过程中失败,也有可能是陷入了循环导入的问题.本文详细解释了这个问题. 1. 模块未安装或者路径不对 ImportE ...

  3. python导入模块错误_Python导入模块时遇到的错误分析

    导读热词 当遇到无法导入某个python模块时,可能会是没有安装某个模块,也有可能是某模块在加载过程中失败,也有可能是陷入了循环导入的问题.本文详细解释了这个问题. 1. 模块未安装或者路径不对 Im ...

  4. python导入模块方法_Python导入模块的3种方法(非常详细)

    许多初学者经常遇到这样的问题: 自定义Python模板后,在其他文件中使用带有import(或从... import)语句导入文件时,Python解释器还会出现以下错误: ModuleNotFound ...

  5. python selenium安装教程_Python Selenium模块安装使用教程详解

    一.概述: Selenium是一个用于Web应用程序测试的工具,本文使用的是Selenium 2.Selenium就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他 ...

  6. python蓝牙模块教程_python 蓝牙模块pybluz安装

    最近项目运用了蓝牙,所以来学一学蓝牙. 经过查阅,知道python的蓝牙模块是pybluz,然后老管理进行安装 出错,提示"Could not find the Windows Platfo ...

  7. python中os模块教程_python os模块功能和方法总结

    os.sep     可以取代操作系统特定的路径分割符 os.linesep  字符串给出当前平台使用的行终止符.例如,Windows使用' ',Linux使用' ' 而Mac使用''. os.nam ...

  8. python导入模块教程_Python 极简教程(二十四) - 导入模块

    每种语言都有一些现成的模块可以调用,这些模块提供各种各样的功能,比如 time 模块提供关于时间的处理,re 模块提供正则表达式的函数, os 模块提供系统级别的操作等. 这些模块存在于 Python ...

  9. python中导入模块用什么命令_Python导入模块的技巧

    作为使用Python的开发者,我们一开始学习的内容之一就是如何导入Python的各种模块或库.但是我们注意到,那些经常使用Python的用户并不一定都知道Python的导入机制其实非常灵活.在本文中, ...

最新文章

  1. java如何定义一个字符栈_Java性能优化之字符串优化处理
  2. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划
  3. 万万没想到,线程居然被饿死了!
  4. Java 8 Optional类深度解析
  5. 枚举当前环境中打开的所有IE
  6. 如何防止token被拦截_Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等
  7. 数据全裸时代,你的隐私有多容易获取?
  8. 互联网晚报 | 4月08日 星期五 | 国家网信办:互联网企业近半年来用工人数保持平稳;特斯拉将推出一款“专用的”自动驾驶出租车...
  9. 简单入门Buffer
  10. FileItem 出现部分中文乱码解决办法
  11. 压缩JS方法:uglifyjs
  12. vue 第八天 小结 作业模拟购物车
  13. 计算机仿真课程建议,关于信息技术教学中的几点建议
  14. 学生管理-axios优化
  15. PaddleNLP基于ERNIR3.0文本分类以CAIL2018-SMALL数据集罪名预测任务为例【多标签】
  16. android 关闭蓝牙功能,android – 打开和关闭蓝牙?
  17. Jupyter notebook更改字体
  18. visual添加mysql.dll_MySQL.VisualStudio.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  19. UEditor富文本编辑器不显示问题
  20. python中pymysql的小坑

热门文章

  1. Bootstrap 弹出框(Popover)插件
  2. JavaScript前端俄罗斯方块小游戏
  3. (一)在Lingo中使用集合
  4. POPTEST老李谈Debug和Release的区别(c#) 1
  5. Enterprise Libary 2 Hands-on-Lab 发布了
  6. 用于快速排查Java的CPU性能问题(top us值过高)
  7. 种树(codevs 1768)
  8. lua OOP实现对象的链式调用
  9. git与svn, tfs等源代码管理器的协同
  10. mongodb分片部署