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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
Python处理XML格式数据的方法详解
Mar 21 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
python 文件查找及内容匹配方法
Oct 25 Python
python实现证件照换底功能
Aug 20 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
Python计算不规则图形面积算法实现解析
Nov 22 Python
python cv2截取不规则区域图片实例
Dec 21 Python
Python开发入门——迭代的基本使用
Sep 03 Python
python UDF 实现对csv批量md5加密操作
Jan 01 Python
Python爬虫之Selenium库的使用方法
Jan 03 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和MySql中计算时间差的方法
2011/04/22 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
jquery ajax请求实例深入解析
2012/11/26 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
js表头排序实现方法
2015/01/16 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
vue中实现回车键登录功能
2020/02/19 Javascript
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
诉讼代理人授权委托书
2014/04/08 职场文书
授权委托书(完整版)
2014/09/10 职场文书
大学生简短的自我评价
2014/09/12 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
关于远足的感想
2015/08/10 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript