Pyhton 编程风格

时间:2022-08-04 16:25:33

博文概要:
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__":