2012-09-09 94 views
1

this question我學會了如何爲Python着色。我想出了所有的顏色代碼,不用擔心。
無論如何,對我有效的答案是orip的ctypes。每次我想爲文本着色時,必須輸入ctypes.windll.kernel32.SetConsoleTextAttribute(handle, AQUA)有點累人。有沒有辦法將它轉換成函數?我不知道如何通過函數發送變量,也不知道如何實現它們,即使我做到了。
在此先感謝! -ghostmancer 對我來說重要的是它對我有用 - 我不打算把我的劇本帶走。 我的顏色:Python中的顏色功能

BLACK = 0x0000 
BLUE = 0x0001 
GREEN = 0x0002 
RED = 0x0004 
PURPLE = 0x0005 
YELLOW = 0x0006 
WHITE = 0x0007 
GRAY = 0x0008 
GREY = 0x0008 
AQUA = 0x0009 #Very Blue 
+0

難道不應該是0x3?和輕型版本的0xb? –

回答

3

嗯......如果我的理解對不對......

def a_func(handle,color): 
    ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color) 

a_func(handle,AQUA) 

甚至更​​好

colorFunc = ctypes.windll.kernel32.SetConsoleTextAttribute 
colorFunc(handle,AQUA) 
+0

第二個例子非常好 - 謝謝! – Andrey

1

一種方法是

def textcolor(handle, color): 
    ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color) 

你打電話,像這樣:

textcolor(handle, AQUA) 
0

您可以使用:

f=lambda handle,color:ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color) 

,並呼籲f(<Actual handle object>, <color>)不管你想要的。 例如f(handle, AQUA)將所需的呼叫

2

無需創建deflambda一個新的功能,只需用長名稱分配功能,較短的名稱,e.g:

textcolor = ctypes.windll.kernel32.SetConsoleTextAttribute 
textcolor(handle, color) 
+0

+1這是最好的方法。 –