博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 基础语法_Python脚本文件结构
阅读量:5951 次
发布时间:2019-06-19

本文共 2919 字,大约阅读时间需要 9 分钟。

前言

基础语法这一章,主要记录了Python的文件结构、逻辑运算符、算术操作符、控制流语句、输入和输出语句、函数、对象、类等方面的内容。在了解了Python的数据类型之后,结合之前的要点来一起继续学习。

软件环境

  • 系统 
    • UbuntuKylin 14.04
  • 软件 
    • Python-2.7.6
    • IPython-4.0.0

Python Script文件结构

Python Script 是应用广泛的一种批量自动化处理方案,同时任何的.py扩展文件在Python执行程序中都可以充当Module文件来使用,是一个于C语言中的头文件类似的东西。从Python一切皆对象的设计理念来说,只要将.py的扩展文件导入Python执行程序中后,我们就可以使用一些Python的内置方法。下面先从Python Script的文件结构开始记录。

#!/usr/bin/env python#-*- coding:utf8 -*-"""Document:Python Script Description"""import osdefineGlobalVairiable = True#define classclass TestClass(object):    """Class description """#define functiondef testFunction(self,parameters):    """Function description"""#main program 程序入口if __name__ == '__main__':    print 'Hello world'

1. Script文件的首行需要指定以什么可执行程序来运行该文件的代码。 

例如:#!/usr/bin/python 指定了路径为/usr/bin下的Python程序来执行。但是在有些情况下HOST的Python执行程序不一定安装在默认的/usr/bin/目录下,使用/usr/bin/env python 则指定了在env环境变量的路径中逐一寻找Python执行程序来执行这个文件中的代码,也推荐使用第二种方法。 
2.在第二行需要指定PythonScript的编码格式 
下面两种均可以指定Script的编码格式,并没有上面区别,个人喜的选择。

#coding=utf8#-*- coding:utf8 -*-#encoding:utf8#encoding=utf8

3.接下来便是文件的Document部分 

编写程序也要注重注释和文档的编写。使用”“” “”” or ”’ ”’来注释文档没有区别。在导入Python Module后,可以使用__doc__方法来查看Document。

In [16]: import pyScriptFormatIn [19]: pyScriptFormat.__doc__Out[19]: 'Document:Python Script Description'In [21]: pyScriptFormat.testFunction.__doc__Out[21]: 'Function description'

:当Import一个Module文件时,Python执行程序会在对其进行一次编译后,会生成.pyc扩展名的字节码文件,同时也会检查.py文件的语法问题。所以当Import出现错误时,可以考虑是否出现了语法错误。 

还可以使用Python内置的dir( )方法来查看这一个Module的内置方法和自定义的属性、方法(以__X__命名的多为系统变量)。

In [22]: dir(pyScriptFormat)Out[22]: ['TestClass', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'defineGlobalVairiable', 'os', 'testFunction']

4.导入需要的模块 

使用 import moduleName 这样的格式来导入一个Python的模块,在.py文件中可以随时随地的使用import语句来导入Python的内置函数模块,值得注意的是,当导入的模块是自定义的Python模块文件时,需要保持与模块文件在同一目录路径下。 
5.定义全局变量、类、函数 
在定义类和函数的时候,也可以在代码块的第二行中写入类或函数的描述说明,至于定义一个类和函数的具体细节,在以后的博文中会详细的记录。 
6.程序入口 __name__ 
__name__方法可以调用当前模块的名字,当该模块是直接运行而非被其他程序导入调用的时候,则该模块的__name__ == ‘__main__’。相反,当该模块是其他程序导入的时候,则该模块的__name__ == ModuleFileName,即模块文件本身的名字。

In [7]: import pyScriptFormatIn [8]: pyScriptFormat.__name__Out[8]: 'pyScriptFormat'

所以当我们若希望模块的主程序仅仅是在被期望执行的时候才会被执行,而不会自动执行时,可以使__name__方法来进行控制,即作为主程序的入口:

if __name__ == '__main__':

这样可以实现节省内存的资源,也有利于提高代码的重用性。

导入模块的流程

Python解析器会自带需要内置的模块,这些模块文件被存放在/usr/lib/python2.7/目录下。模块文件在第一次导入时,会先编译成.pyc后缀的文件,方便下次可以无须编译速度实现导入。 

1. 在当前目录下寻找.pyc的模块文件 
2. 若没有则将同名的.py文件,编译成.pyc文件后再导入 
3. 若连.py文件都没有的话,会到/usr/lib/python.2.7/目录下寻找 
4. 若仍然没有找到,就到setpy目录下寻找 
5. setpy下也没有找到时,会出发ImportError的错误。

Python的包package

创建一个Python包: 

1. 创建一个包目录PackageName 
2. 在package目录下创建__init__.py文件,有__init__.py文件表示此目录为包结构 
3. 在此目录下可以存放Module、Script、.pyc、子包等结构的文件或目录 
调用方式

import PackageName.ModuleNamePackageName.MudoleName.functionName() #逐层调用

最后

需要注意的是,在不同的使用环境下,Python文件的结构也会不一样,本篇是针对Python Script文件而言。但退一步来说,大道相通,希望可以做到举一反三。同时,养成一个良好的编程风格是文档处理的习惯会在以后的Teamwork中发挥很多便利的作用。

Jmilk

转载:http://blog.csdn.net/jmilk/article/details/48573995

你可能感兴趣的文章
linux下git自动补全命令
查看>>
Ubuntu14.04LTS更新源
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
mysql多实例实例化数据库
查看>>
我的友情链接
查看>>
golang xml和json的解析与生成
查看>>
小弟的新书《Ext JS权威指南》终于出版了
查看>>
好吧好吧,就在这里消磨时间
查看>>
二层的,DTP+CAM/ARP
查看>>
2011工作总结
查看>>
javascript 操作DOM元素样式
查看>>
Android 内存管理 &Memory Leak & OOM 分析
查看>>
[转]html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
查看>>
[水]三个数学的小技巧题
查看>>
mysql中查看数据库的版本,什么版本
查看>>
[leetcode-342-Power of Four]
查看>>
MongoDB3.0 创建用户
查看>>
2017-2018-1 20155319 《信息安全系统设计基础》第3周学习总结
查看>>
express 3.0.x 中默认不支持flash() 的解决方法
查看>>
uva-111-dp
查看>>