2016-07-27 77 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

的感谢!有效 :) –