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__":