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 osdefineGlobalVairiable = 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 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.ModuleName
PackageName.MudoleName.functionName() #逐层调用

最后

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

Jmilk


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Andriod之import android.support.v4或者import android.support.v7提示导入错误解决办法

问题所在原因:少了v4.jar包 解决办法:给项目添加v4.jar包就行 在使用Eclipse开发andriod程序时,程序中提示import android.support.v4.XXX或者import android.support.v7.XXX出错,具体的提示信息是: The import andro…

e2200网卡驱动 linux,Linux驱动修炼之道-驱动中一些常见的宏

Linux驱动修炼之道-驱动中一些常见的宏努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处http://doc.xuehai.net/woshixingaaa/archive/2011/06/02/6462065.aspx本文档讲解一下驱动中常用的宏,下边一个一个来说,先声明…

一对经典的时间获取客户/服务器程序

前言 本文通过一对经典的时间获取客户/服务器程序&#xff0c;展现了Linux网络编程的大体框架&#xff0c;为以后更深入的学习打下基础。 客户服务器模式网络编程的大体框架 客户端代码 1 #include <stdio.h>2 // 下头文件包含socket(), bind()等套接字通信必须的函数。3…

SkyWalking8.1.0 部署和使用

一、简介1、官方文档https://github.com/apache/skywalking/tree/master/docs2、功能SkyWalking是一个可观测性分析平台和应用性能管理系统&#xff0c;提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案&#xff0c;并支持多种开发语言。专为微服务、云原生架…

CGI编程学习

一&#xff0e;基本原理 CGI&#xff1a;通用网关接口&#xff08;Common Gateway Interface&#xff09;是一个Web服务器主机提供信息服务的标准接口。通过CGI接口&#xff0c;Web服务器就能够获取客户端提交的信息&#xff0c;转交给服务器端的CGI程序进行处理&#xff0c;最…

博古通今的孩子是怎么养成的?答案就在这本影响了无数中国人思想的奇书里……

▲ 点击查看“三十六计走为上计”这句话&#xff0c;相信是大家从小听到大的俗语了。除此之外&#xff0c;还有“抛砖引玉”、“顺手牵羊”、“借刀杀人”、“擒贼先擒王”等都出自经典兵书《三十六计》。《三十六计》是中国古代最伟大的兵法谋略书之一&#xff0c;集智慧韬略、…

jmeter(2)录制脚本

Jmeter脚本是以JMX格式为主 Jmeter也是支持录制的&#xff0c;支持第三方录制方式和代理录制方式。 1、第三方录制主要是通过badboy来录制&#xff0c;录制后另存为jmx格式即可。 2、Jmeter也有自己的代理&#xff0c;录制脚本前&#xff0c;我们只要启动好代理&#xff0c;手动…

Android之Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE问题解决

Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE 晚上在测一个widget,前面测的好好的,后面再安装的时候发现如下错误: [2009-06-07 02:39:35 - battery] Performing sync [2009-06-07 02:39:35 - battery] Automatic Target Mode: using device HT843GZ03305 [2009…

linux硬盘转windows7,记——第一次上手UEFI电脑,将mbr硬盘的Windows7和Linux转为gpt+uefi启动...

这是篇日记&#xff0c;前面有大量的个人情绪&#xff0c;要看方法的请直接看后面。--------------------------------------------------------------------------------------------我终于上手新电脑了虽然还是用别人的旧电脑但是总算能够用上近代一点的硬件了&#xff0c;可…

20 个 .NET 6 新增的 API

DateOnly & TimeOnly.NET 6 引入了两种期待已久的类型 - DateOnly 和 TimeOnly, 它们分别代表DateTime的日期和时间部分。DateOnly dateOnly new(2021, 9, 25);Console.WriteLine(dateOnly);TimeOnly timeOnly new(19, 0, 0);Console.WriteLine(timeOnly); DateOnly date…

中国学生的最大噩梦,都来源于这个男人

全世界只有3.14 % 的人关注了爆炸吧知识会通中西经世致用说到中国古代的“全才”&#xff0c;一般人都会脱口而出沈括、张衡、祖冲之....而在明朝&#xff0c;有这么一位少有人知的“全才”式科学家&#xff0c;他的研究领域包括天文、历法、数学、军事、农业、水利....和上述的…

BASE64 编码和解码

依赖jar: import org.apache.commons.codec.binary.Base64; BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据&#xff0c;其目的是为了简化存储或传输。更具体地说&#xff0c;BASE64算法主要用于转换二进 制数据为ASCII字符串格式。Java语言提供了一个非常好的BA…

类和类之间的关系解析-1

一、泛化关系 泛化关系也称继承关系&#xff0c;指的是一个类&#xff08;称为子类、子接口&#xff09;继承另外的一个类&#xff08;称为父类、父接口&#xff09;的功能&#xff0c;并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识&#xf…

转:智能卡测试操作系统技术

具有稳定、可靠的卡内操作系统是智能卡正常工作的基础&#xff0c;智能卡操作系统控制外界与智能卡之间的通信&#xff0c;管理卡片的存储空间&#xff0c;并且在卡内对于各种命令进行处理&#xff0c;所以在COS 开发过程中有必要对COS 进行充分且全面的测试。COS 的主要特点: …

Android之添加快捷方式(Shortcut)到手机桌面

在两个手机上测试,发现小米手机上添加了快捷方式后不能移除,三星手机可以。权限 要在手机桌面上添加快捷方式,首先需要在manifest中添加权限。 <!-- 添加快捷方式 --><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"…

C# 使用阿里云发送短信

最近有个项目&#xff0c;短信服务使用的是阿里云的&#xff0c;想要使用阿里云平台的短信服务&#xff0c;首先要注册一个阿里云账号&#xff0c;由于发送短信消息需要用到短信签名、短信模板ID&#xff08;已添加并通过审核&#xff09;1、注册阿里云账号&#xff08;地址&am…

如果太阳系毁灭,这种神秘粒子就是真凶!

185年12月7日这一天&#xff0c;东汉中平二年乙丑&#xff0c;一位天文学家观测到天空出现了一颗极其明亮的星体&#xff0c;他并不知道这意味着什么。这颗突然出现于苍穹之中的星星在夜空中照耀了八个月后&#xff0c;又忽然消逝了。《后汉书天文志》中留下了这段记载&#xf…

Centos7 安装gitlab 8.7.5

简介&#xff1a;GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的web服务。1. Web框架使用Ruby on Rails。2. 基于MIT代码发布协议。3. 需要gitolite协同工作。安装要求&#xff1a;ruby 1.9.3MySQLgitgitoliteredis如果…

ocx c++

引用&#xff1a;http://www.baike.com/wiki/ocx ocx&#xff0c;使用它可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。 编辑摘要目录 [ 隐藏 ]1 定义2 用途ocx - 定义 ActiveX控件.ActiveX控件是可重用的软件组件。 ocx - 用途 使用它可以很快地在网址、台式…

男人会为女人改变多少

男人会为女人改变多少 女人都想改造男人   从前有人说&#xff0c;女人征服男人&#xff0c;然后通过男人征服世界&#xff1b;而现在是女人改造男人&#xff0c;然后男人按照女人的意愿改造世界。女人喜欢男人&#xff0c;这八成是错不了的&#xff0c;但女人永远不满意男人…