這是一個(gè)系列文章哟沫,主要分享python的使用建議和技巧鸠珠,每次分享3點(diǎn)巍耗,希望你能有所收獲。
1 通過具名元組實(shí)現(xiàn)常量
#!/usr/bin/python
# coding=utf-8
from collections import namedtuple
RGB = namedtuple('RGB', 'RED GREEN BLUE')
rgb = RGB(0, 1, 2)
print rgb.RED
print rgb.GREEN
print rgb.BLUE
# rgb.RED = 3
運(yùn)行示例代碼輸出如下:
$ ./python-tips-18.py
0
1
2
通過具名元組渐排,可以實(shí)現(xiàn)常量的定義炬太。如果試圖修改其中的屬性,比如rgb.RED = 3驯耻,會(huì)發(fā)現(xiàn)程序拋出AttributeError異常亲族,即實(shí)現(xiàn)了不能修改常量的目的。
2 終端打印帶顏色字體
#!/usr/bin/python
# coding=utf-8
import termcolor
print termcolor.colored('red line', 'red')
print termcolor.colored('green line and blink', 'green', attrs=['blink'])
termcolor.cprint('red line and white background', 'red', 'on_white')
運(yùn)行示例代碼輸出如下:
$ ./python-tips-18.py
red line
green line and blink
red line and white background
該示例需要安裝termcolor模塊且必須在終端執(zhí)行可缚。輸出的第一行是紅色霎迫,第二行是綠色且有閃爍效果,第三行是紅色字體帘靡,白色背景知给。
3 函數(shù)調(diào)用時(shí)傳遞list的拷淺貝
#!/usr/bin/python
# coding=utf-8
def mod_list(my_list):
my_list[0] = 1
my_list[1] = 2
my_list = [0, 1, 2, 3, 4]
print my_list
mod_list(my_list[:])
print my_list
my_list = [0, 1, 2, 3, 4]
print my_list
mod_list(my_list)
print my_list
運(yùn)行示例代碼輸出如下:
$ ./python-tips-18.py
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
[1, 2, 2, 3, 4]
由示例中可以看到,傳遞my_list[:]給mod_list函數(shù)描姚,源list不會(huì)受到影響炼鞠,直接傳遞my_list給mod_list函數(shù),mod_list函數(shù)對my_list的修改會(huì)影響源list轰胁。如果不希望修改源list谒主,推薦使用該方式將list傳遞給函數(shù)。需要特別指出赃阀,這里實(shí)際還是傳遞一個(gè)list淺拷貝霎肯,如果list中還有l(wèi)ist,通過該方式傳遞list還是會(huì)修改源list榛斯。