Pyhton 编程风格
博文概要:
1、Python语句和语法
2、Python标识符
3、基本编程风格
一、Python语句和语法
1、可以从一行的任何地方开始
2、续行
\:
''':闭合操作符,单一语句跨多行
3、代码组
、缩进相同的一组语句构成的一个代码块
、首行以关键字开始,如if、while 等,以冒号结束
、Python使用缩进来分隔代码组,同一代码组的代码行必须严格左对齐,否则会造成语法错误
、同一行放置多个语句
;:以分号作为分隔符
、模块
每一个Python脚本文件都可以被当成是一个模块;模块的名称也是脚本名称
模块里的代码可以是一段直接执行的脚本,也可以是一些类似库函数的代码从而可由别的模块执行导入(import) 因为模块在被import的那一刻就会执行;所以模块中一般存放的都是一些可调用的代码段;
- #!/usr/bin/python2.6
- #coding=utf-8
- name = "Tom"
- def prinName(a):
- print a
- #缩进相同的一组语句构成的一个代码块;num与之前的代码块已经毫无关系了
- num = 4
- print num
- print prinName(name)
- #导入模块是需要指定模块的目录路径的;
- [root@oracle ~]# cat mod.py
- #!/usr/bin/python2.6
- def prinName(a):
- print a
- b = "Black"
- print a+b
- [root@oracle ~]# cat import.py
- #!/usr/bin/python2.6
- #
- import mod
- mod.prinName()
二、标识符
1、标识符是计算机语言中允许作为名字的有效字符串集合
其中有一部分是关键字,它们是语言的标识符,因此是保留字,不能用于其它用途
python还有称为"内建"的标识符集合,虽然不是保留字,仍不推荐使用这些特别的名字
2、Python标识符
第一个字符只能使用字母或者下划线
余下的字符可以使用字母、数字或下划线
区分字符大小写
三、Python基本编程风格
1、注释
既不能缺少注释,也要避免过度注释
2、文档
Python允许通过__doc__动态获得文档字符串
3、缩进
统一缩进4个字符
4、标识符名称
见名知意
- >>> str.__doc__
- 'str(object) -> string\n\nReturn a nice string representation of the object.\nIf the argument is a string, the return value is the same object.'
- >>>
- >>>
- >>> print str.__doc__
- str(object) -> string
- Return a nice string representation of the object.
- If the argument is a string, the return value is the same object
Python的命名惯例
1、以单一下划线开头的变量名(_x)不会被from module import *语句导入
2、前后有下划线的变量名(__x__)是系统变量名,对解释器有特殊意义
3、以两个下划线开头、但结尾没有下划线的变量名(__x)是类的本地变量
4、交互式模式下,只有单个下划线的变量名(_)用于保存最后表表达式的结果
- >>> a = "I love:"
- >>> b = "pig"
- >>> print a+b
- I love:pig
- >>> print a.__add__(b)
- I love:pig
- class str(basestring)
- | str(object) -> string
- |
- | Return a nice string representation of the object.
- | If the argument is a string, the return value is the same object.
- |
- | Method resolution order:
- | str
- | basestring
- | object
- |
- | Methods defined here:
- |
- | __add__(...)
- | x.__add__(y) <==> x+y
- |
- | __contains__(...)
- | x.__contains__(y) <==> y in x
- |
- | __eq__(...)
- | x.__eq__(y) <==> x==y
- |
- | __format__(...)
- | S.__format__(format_spec) -> string
- |
- | __ge__(...)
- | x.__ge__(y) <==> x>=y
- |
- | __getattribute__(...)
- | x.__getattribute__('name') <==> x.name
- |
- | __getitem__(...)
- | x.__getitem__(y) <==> x[y]
Python 文件结构
- #!/usr/bin/python2.6 # (1)起始行
- #coding=utf-8 #mod.__doc__ 引用类的文档
- #"this is test module" (2)模块文档(文档字符串)
- import sys #(3)模块导入
- import os
- debug = true
- name = "Tom" #(4)全局变量
- class FooClass(object): #(5)类定义(若有)
- "Foo class"
pass- def test():
"test function"- foo = FooClass() #将类实例化
if debug:
print 'ran test()'- def prinName(a): #(6)函数定义(若有)
- print a
- #缩进相同的一组语句构成的一个代码块;num与之前的代码块已经毫无关系了
- num = 4
- print num
- print prinName(name)
- if __name__ == '__main__'#(7)主程序
test()
prinName()
Python文件主程序
1、主程序
无论当前模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码
2、注意:所有的模块都有能力执行代码
最高级别的python语句(没有缩进的)在模块被导入时就会执行,无论是否真的需要执行
3、妥当的做法:除了那些真正需要执行的代码之外,所有的功能代码都通过函数建立,因此
仅在主程序模块中编写大量的顶级可执行代码
用于被导入的模块只应该存在较少的顶级执行代码
4、__name__指示模块应该如何被加载 每一个模块都有一个名为__name__的内建变量,此变量值会根据调用此模块的方式发生变化
如果模块是被导入,__name__的值是模块的名字
如果模块是直接执行,__name__的值是"__main__":
Pyhton 编程风格的更多相关文章
- C++服务器开发之基于对象的编程风格
Thread.h #ifndef _THREAD_H_ #define _THREAD_H_ #include <pthread.h> #include <boost/functio ...
- ES6深入学习记录(三)编程风格
今天学习阮一峰ES6编程风格,其中探讨了如何将ES6的新语法,运用到编码实践之中,与传统的JavaScript语法结合在一起,写出合理的.易于阅读和维护的代码. 1.块级作用域 (1)let 取代 v ...
- 个人c语言编程风格总结
总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...
- Google Java编程风格指南
出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...
- 编程风格(Coding Style)要求
编程风格(Coding Style)要求2.1.1 文件(1) 每个模块(module)一般应存在于单独的源文件中,通常源文件名与所包含模块名相同.(2) 每个设计文件开头应包含如下注释内容:? 年份 ...
- Javascript编程风格
Douglas Crockford是Javascript权威,Json格式就是他的发明. 去年11月他有一个演讲(Youtube),谈到了好的Javascript编程风格是什么.我非常推荐这个演讲,它 ...
- Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...
- 《C#编程风格》还记得多少
开始实习之后,才发现自己是多么地菜.还有好多东西还要去学习. 公司很好,还可以帮你买书.有一天随口问了一下上司D,代码规范上面有什么要求.然后D在Amazon上面找到了这本书<C#编程风格(Th ...
- Java学习笔记(四)——google java编程风格指南(上)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
随机推荐
- 树莓派指定静态IP
1.备份并清空 interfaces 文件 cp /etc/network/interfaces /etc/network/interfaces.bak vi /etc/network/interfa ...
- java基础18 String字符串和Object类(以及“equals” 和 “==”的解析)
一.String字符串 问:笔试题:new String("abc")创建了几个对象?答:两个对象,一个对象是 位于堆内存,一个对象位于字符串常量池 class Demo17 { ...
- centos7.2下caffe的安装及编译
1.前期准备 安装依赖 sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5 ...
- javaweb作业二
作业:1.书写servlet的类架构及重要方法.(ServletConfig,Servlet)<---GenericServlet(getInitParameter(String str);in ...
- CVE-2010-2883Adobe Reader和Acrobat CoolType.dll栈缓冲区溢出漏洞分析
Adobe Acrobat和Reader都是美国Adobe公司开发的非常流行的PDF文件阅读器. 基于Window和Mac OS X的Adobe Reader和Acrobat 9.4之前的9.x ...
- CentOS7.5安装MongoDB4.0与CRUD基本操作
一 MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数 ...
- 【51nod】1531 树上的博弈
题解 我们发现每次决策的时候,我们可以判断某个点的决策,至少小于等于几个点或者至少大于等于几个点 我们求最大值 dp[u][1 / 0] dp[u][1]表示u这个点先手,至少大于等于几个点 dp[u ...
- USACO 4.4 Pollutant Control (网络流求最小割割集)
Pollutant ControlHal Burch It's your first day in Quality Control at Merry Milk Makers, and already ...
- 在VMware虚拟机中安装Mac OS 操作系统
1. 安装VMware 我这里是安装VMWARE12.exe,其他的版本我不知道是否可以正常运行,最好大家安装12版本的比较好. 2. 安装 Mac OS X Unlocker for VMware ...
- 全文搜索引擎 Elasticsearch (二) 使用场景
1.场景—:使用Elasticsearch作为主要的后端 传统项目中,搜索引擎是部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力.这是因为早期的搜索引擎不能提供耐用的存储或其他经常需要的功能 ...