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正则表达式中的括号匹配问题
Dec 14 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
Python基础知识_浅谈用户交互
May 31 Python
详谈python在windows中的文件路径问题
Apr 28 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
Django model序列化为json的方法示例
Oct 16 Python
10行Python代码计算汽车数量的实现方法
Oct 23 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
Python 数据可视化之Bokeh详解
Nov 02 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
PHP中动态HTML的输出技术
2006/10/09 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
PHP的自定义模板引擎
2017/03/24 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
vue 计时器组件的实现代码
2017/09/14 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
Python实现文件复制删除
2016/04/19 Python
Python实现读取json文件到excel表
2017/11/18 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
农民工工资发放承诺书
2014/03/31 职场文书
小学班主任评语大全
2014/04/23 职场文书
法人授权委托书范本
2014/09/17 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
学生会部长竞选稿
2015/11/19 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers