2016-07-27 22 views
1

我有具有Error_IDError_Messages映射此字典,並且這些錯誤消息具有{},使得它們可以有動態數據,同時打印訪問數據幀和打印定製錯誤消息

dict = {'101': 'Invalid table name {}', '102': 'Invalid pair {} and {}'} 

我有這個功能,I」會打電話給我每次有一個錯誤的時間

def print_error(error_id,error_data) 
     print(error_id,dict[error_id].format("sample_table") 

error_id='101' 

print(error_id,dict[error_id].format("sample_table")) 
Invalid table name sample_table 

但對於第二個錯誤怎麼辦,這樣我可以有兩件事情跟單打印語句傳遞我print_error模塊從而使輸出會像

102 Invalid pair Sample_pair1 and Sample_pair2 

回答

2

您可以使用Python的迭代拆封來可變數量的參數傳遞給str.format

def print_error(error_id,error_data): 
    if not isinstance(error_data, tuple): # if error_data isn't a tuple 
     error_data= (error_data,) # make it a tuple so we can unpack it 
    print(error_id,dict[error_id].format(*error_data)) # unpack the tuple 

print_error('101',"sample_table") 
print_error('102',('a','b')) 
+0

的感謝!有效 :) –