Python模块结构与布局操作方法实例分析


Posted in Python onJuly 24, 2017

本文实例讲述了Python模块结构与布局操作方法。分享给大家供大家参考,具体如下:

#coding=utf8
#起始行
#!/usr/bin/env python
#模块文档
'''''
合理的Module布局:
(1) 起始行(Unix)
(2) 模块文档
(3) 模块导入
(4) 变量定义
(5) 类定义
(6) 函数定义
(7) 主程序
-----------------------------
(1) 起始行(Unix)
通常只有在类Unix环境下才使用起始行,有起始行可以输入脚本名来执行脚本。
(2) 模块文档
简要介绍模块功能及重要全局变量的含义,模块外可以通过module.__doc__访问这些内容。
(3) 模块导入
导入当前模块的代码需要的所有模块;每个模块仅导入一次;
函数内部的模块导入代码不会被执行,除非该函数正在执行。
(4) 变量定义
这里定义的变量为全局变量,本模块中的所有函数都可以直接使用。
尽量使用局部变量代替全局变量,这样不但容易维护,还可以提高性能并节省内存。
(5) 类定义
所有的类需要在这里定义。当模块被导入时class语句会被执行,类也会被定义。
类的文档变量是class.__doc__
(6) 函数定义
此处定义的函数可以通过module.function()在外部被访问到,当模块被导入时def语句会被执行,
函数也就会定义好,函数的文档变量是function.__doc__
(7) 主程序
无论这个模块使被别的模块导入还是作为脚本直接执行,都会执行这部分代码。
通常这里不会有太多功能性代码,而是根据执行的模式调用不同的函数。
'''
#导入模块
import sys
import time
from scrapy.utils import job
#定义变量
flag=1
#类定影
class Person(object):
  '''''
  Person class
  set person name、sex、age、job
  output the person information
  '''
  def __init__(self):
    self.name=''
    self.sex=''
    self.age=18
    self.job=''
  def setName(self,name):
    self.name=name
  def setSex(self,sex):
    self.sex=sex
  def setAge(self,age):
    self.age=age
  def setJob(self,job):
    self.job=job
  def outPut(self):
    print '''''
    name:%s
    sex:%s
    age:%d
    job:%s
    ''' %(self.name,self.sex,self.age,self.job)
#函数定义
def test():
  '''''
  test function
  '''
  if flag:
    print '''''
    run test()
    '''
    person=Person()
    person.setName("ewang")
    person.setAge(25)
    person.setSex("famale")
    person.setJob("big data testing")
    person.outPut()
#主程序
#如果模块使被导入,__name__的值为模块名字
#如果模块使被直接执行,__name__的值为'__main__'
if __name__=='__main__':
  test()

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
树莓派中python获取GY-85九轴模块信息示例
Dec 05 Python
从零学Python之入门(二)基本数据类型
May 25 Python
python中的格式化输出用法总结
Jul 28 Python
详解爬虫被封的问题
Apr 23 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
python cumsum函数的具体使用
Jul 29 Python
Python实现UDP程序通信过程图解
May 15 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 Python
深入了解Python装饰器的高级用法
Aug 13 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
pycharm配置安装autopep8自动规范代码的实现
Mar 02 Python
Python基本数据类型之字符串str
Jul 21 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
Jul 24 #Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 #Python
python引入导入自定义模块和外部文件的实例
Jul 24 #Python
Python3.X 线程中信号量的使用方法示例
Jul 24 #Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 #Python
老生常谈进程线程协程那些事儿
Jul 24 #Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 #Python
You might like
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php对数组排序代码分享
2014/02/24 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
为指定元素增加样式的js代码
2009/12/09 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
更改Ubuntu默认python版本的两种方法python-> Anaconda
2016/12/18 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
学习python可以干什么
2019/02/26 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
班风学风建设方案
2014/05/06 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
消防安全主题班会
2015/08/12 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
工厂无线对讲系统解决方案
2022/02/18 无线电
Java存储没有重复元素的数组
2022/04/29 Java/Android