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编程风格指南(上)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
随机推荐
- 实现checkebox全选取消操作
方法一: javascript代码: function checkedChild(obj,index){ var checkBoxs = document.getElementsByName(&quo ...
- pycharm tornado 项目 配置
ycharm 配置tornado项目 使得能够像django项目一样运行
- python网络编程--线程event
一:线程event作用 Python提供了Event对象用于线程间通信,它是线程设置的信号标志,如果信号标志位真,则其他线程等待直到信号结束. Event对象实现了简单的线程通信机制,它提供了设置信号 ...
- SQL中EXCEPT和Not in的区别?
初始化两张表: CREATE TABLE tb1(ID int) INSERT tb1 SELECT NULLUNION ALL SELECT NULLUNION ...
- Git简明教程一、基本概念
文本是写给新手的Git入门教程.本文的目的是让新手能够快速了解并开始使用Git,因此只会介绍最基本.同时也是最核心的知识.其中包括使用Git的基本步骤和Git中最常用的命令,以及如何使用GitHub托 ...
- Linux学习笔记:vi常用命令
在Linux系统中常用vi命令进行文本编辑. vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器.Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved), ...
- MAC下安装MAMP后,mysql server无法启动
用MAC下载安装了MAMP,之前使用是很好没问题的,但是突然无法启动mysql server,检查日志,提示InnDB出错,然后删掉了/Application/MAMP/db/mysql56目录下的i ...
- Ansible介绍及安装部署
本节内容: 运维工具 Ansible特性 Ansible架构图和核心组件 安装Ansible 演示使用示例 一.运维工具 作为一个Linux运维人员,需要了解大量的运维工具,并熟知这些工具的差异,能够 ...
- 【LOJ】#2320. 「清华集训 2017」生成树计数
题解 我,理解题解,用了一天 我,卡常数,又用了一天 到了最后,我才发现,我有个加法取模,写的是while(c >= MOD) c -= MOD 我把while改成if,时间,少了 六倍. 六倍 ...
- MyEclipse 10、9、8 添加jadClipse反编译插件
jad是一个使用比较广泛的Java反编译软件,jadClipse是jad在eclipse下的插件,如何将jadclipse加入到MyEclipse10.X,9.X,8.X当中: http://nchc ...