Python 基础语法_Python脚本文件结构
目录
前言
Python基础语法这一章,主要记录了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 os
defineGlobalVairiable = True
#define class
class TestClass(object):
"""Class description """
#define function
def 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 pyScriptFormat
In [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 pyScriptFormat
In [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.ModuleName
PackageName.MudoleName.functionName() #逐层调用
最后
需要注意的是,在不同的使用环境下,Python文件的结构也会不一样,本篇是针对Python Script文件而言。但退一步来说,大道相通,希望可以做到举一反三。同时,养成一个良好的编程风格是文档处理的习惯会在以后的Teamwork中发挥很多便利的作用。
Jmilk
Python 基础语法_Python脚本文件结构的更多相关文章
- python基础语法_python中的布尔类型详解
转自:http://www.cnblogs.com/521yywzyzhc/p/6264885.html 我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是 ...
- Python 基础语法(四)
Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...
- Python 基础语法
Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...
- 【转】Python基础语法
[转]Python基础语法 学习一门编程语言,通常是学习该语言的以下几个部分的内容: 基础语法:如,变量的声明与调用.基本输出语句.代码块语法.注释等: 数据类型:通常都为 数字.字符串.布尔值.数组 ...
- Python基础语法题库
引言: 语法练习包括Python基础语法.数据类型.字符编码和简单文件操作等内容. 正文(参考答案附录在题目下方): 1.Python 里用来告知解释器跳过当前循环中的剩余语句,然后继续进行下一轮循环 ...
- python基础语法(四)
--------------------------------------------接 Python 基础语法(三)---------------------------------------- ...
- python基础语法(一)
Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语 ...
- Python基础语法(转)
作者:Peter 出处:http://www.cnblogs.com/Peter-Zhang/ Python 基础语法(一) Python的特点 1. 简单 Python是一种代表简单思想的语言. ...
- 尚学python课程---13、python基础语法
尚学python课程---13.python基础语法 一.总结 一句话总结: legend2系统使我能够快速掌握一门语法,特别有用 pass 语句:空语句:是为了保持程序结构的完整性 :作用:比如: ...
随机推荐
- zabbix监控,微信报警
微信告警 访问这个地址创建企业微信 https://work.weixin.qq.com/
- Hive Serde(四)
Hive Serde 目的: Hive Serde用来做序列化和反序列化,构建在数据存储和执行引擎之间,对两者实现解耦. 应用场景: 1.hive主要用来存储结构化数据,如果结构化数据存储的格 ...
- Let's write a framework.
Let's write a framework. create a model var model={a:1,b:'b'} let's create a router, router maps url ...
- Itextpdf + Adobe Acrobat DC填充模板生成pdf快速入门
Itextpdf + Adobe Acrobat DC填充模板生成pdf快速入门 生成pdf有很多种方法,如通过freemarker,或 使用itextpdf.本文将使用itextpdf生成pdf 1 ...
- debug --- 使用Eclipse
debug必知(快捷键若无效,有可能是与其它软件的快捷键发生冲突的原因) 1.F6 —— 单步执行代码,即顺序一行行地执行源码 2.F5 —— 跳入当前调用的函数的内部,即进入函数内部执行源码 ...
- pikachu-file
1.不安全的文件下载 1.1.概述 文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下 ...
- Notepad++设置运行快捷键
python: 先按F5,之后将下面的命令保存,再设置快捷键. cmd /k c:\python27\python "$(FULL_CURRENT_PATH)" & PAU ...
- 'EF.Utility.CS.ttinclude' returned a null or empty string.
需要安装https://www.microsoft.com/en-us/download/details.aspx?id=40762
- head first 设计模式笔记2-观察者模式:气象观测站
设计原则:为了交互对象之间的松耦合设计而努力. 1.设计模式的一些理解 1)知道OO基础,并不足以让你设计出良好的OO系统 2)良好的OO设计必须具备可复用.可扩充.可维护三个特性 3)模式可以让我们 ...
- sh_01_列表基本使用
sh_01_列表基本使用 name_list = ["zhangsan", "lisi", "wangwu"] # 1. 取值和取索引 # ...