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创建XML文档
Mar 01 Python
使用python实现knn算法
Dec 20 Python
Python中一行和多行import模块问题
Apr 01 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
Python数据集切分实例
Dec 08 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
使用python实现简单五子棋游戏
Jun 18 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
Python中seaborn库之countplot的数据可视化使用
Jun 11 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
一个捕获函数输出的函数
2007/02/14 PHP
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
EJB的几种类型
2012/08/15 面试题
体育教师自荐信范文
2013/12/16 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python