#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()

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐