Pyhton 編程風格

博文概要:
一、Python語句和語法
二、Python標識符
三、基本編程風格python

 

1、Python語句和語法
一、能夠從一行的任何地方開始
二、續行
\:
''':閉合操做符,單一語句跨多行編程

三、代碼組
 、縮進相同的一組語句構成的一個代碼塊
 、首行以關鍵字開始,如if、while 等,以冒號結束
 、Python使用縮進來分隔代碼組,同一代碼組的代碼行必須嚴格左對齊,不然會形成語法錯誤
 、同一行放置多個語句
;:以分號做爲分隔符
 、模塊
每個Python腳本文件均可以被當成是一個模塊;模塊的名稱也是腳本名稱
模塊裏的代碼能夠是一段直接執行的腳本,也能夠是一些相似庫函數的代碼從而可由別的模塊執行導入(import) 由於模塊在被import的那一刻就會執行;因此模塊中通常存放的都是一些可調用的代碼段;oracle

#!/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()

2、標識符
一、標識符是計算機語言中容許做爲名字的有效字符串集合
其中有一部分是關鍵字,它們是語言的標識符,所以是保留字,不能用於其它用途
python還有稱爲"內建"的標識符集合,雖然不是保留字,仍不推薦使用這些特別的名字
二、Python標識符
第一個字符只能使用字母或者下劃線
餘下的字符可使用字母、數字或下劃線
區分字符大小寫函數


3、Python基本編程風格
一、註釋
既不能缺乏註釋,也要避免過分註釋
二、文檔
Python容許經過__doc__動態得到文檔字符串
三、縮進
統一縮進4個字符
四、標識符名稱
見名知意this

>>> 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的命名慣例
一、以單一下劃線開頭的變量名(_x)不會被from module import *語句導入
二、先後有下劃線的變量名(__x__)是系統變量名,對解釋器有特殊意義
三、以兩個下劃線開頭、但結尾沒有下劃線的變量名(__x)是類的本地變量
四、交互式模式下,只有單個下劃線的變量名(_)用於保存最後表表達式的結果spa

>>> 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 文件結構debug

#!/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文件主程序
一、主程序
不管當前模塊是被別的模塊導入仍是做爲腳本直接執行,都會執行這部分代碼
二、注意:全部的模塊都有能力執行代碼
最高級別的python語句(沒有縮進的)在模塊被導入時就會執行,不管是否真的須要執行
三、穩當的作法:除了那些真正須要執行的代碼以外,全部的功能代碼都經過函數創建,所以
僅在主程序模塊中編寫大量的頂級可執行代碼
用於被導入的模塊只應該存在較少的頂級執行代碼
四、__name__指示模塊應該如何被加載 每個模塊都有一個名爲__name__的內建變量,此變量值會根據調用此模塊的方式發生變化
若是模塊是被導入,__name__的值是模塊的名字
若是模塊是直接執行,__name__的值是"__main__":code

相關文章
相關標籤/搜索