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 break语句详解
Mar 11 Python
在Python的Django框架的视图中使用Session的方法
Jul 23 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
详解python调度框架APScheduler使用
Mar 28 Python
关于反爬虫的一些简单总结
Dec 13 Python
python截取两个单词之间的内容方法
Dec 25 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
python实现微信自动回复机器人功能
Jul 11 Python
PyTorch中的Variable变量详解
Jan 07 Python
如何通过python实现人脸识别验证
Jan 17 Python
Python递归调用实现数字累加的代码
Feb 25 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 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
一个程序下载的管理程序(一)
2006/10/09 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
分析在Python中何种情况下需要使用断言
2015/04/01 Python
Python的re模块正则表达式操作
2016/05/25 Python
python实现控制台打印的方法
2019/01/12 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
如何使用Python 打印各种三角形
2019/06/28 Python
python正则-re的用法详解
2019/07/28 Python
微信小程序python用户认证的实现
2019/07/29 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
自动一体化专业求职信
2014/03/15 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
JavaScript 反射学习技巧
2021/10/16 Javascript
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers