2016-03-10 102 views
-1

我是編程新手,有人能告訴我有什麼區別,以及如何處理Python中的錯誤?如何處理和設置python中的錯誤,返回值和返回值?

def compare_files(file1, file2): 
    status = 0 
    try: 
     with open(file1, 'rb') as f_file1, open(file2, 'rb') as f_file2: 
      if f_file1.read() == f_file2.read(): 
       print 'SUCCESS \n' 
      else: 
       print 'FAILURE \n' 
       status = 1 
    except IOError: 
     print "[Error]File is NOT compared" 
     status = -1 
    return status 

是否可以在上面的程序中使用return 1,返回-1或返回0?而不是使用狀態= 0,1等等。我想以有效的方式處理程序中的錯誤。所以有人可以解釋或告訴我該怎麼做?

回答

0

當然,你可以只使用返回的而不是可變

def compare_files(file1, file2): 
    try: 
     with open(file1, 'rb') as f_file1, open(file2, 'rb') as f_file2: 
      if f_file1.read() == f_file2.read(): 
       print 'SUCCESS \n' 
       return 0 
      else: 
       print 'FAILURE \n' 
       return 1 
    except IOError: 
     print "[Error]File is NOT compared" 
     return -1 

分配狀況你可能要處理這樣的:

val = compare_files(file1, file2) 
if val == 0: 
    print "Files are the same" 
elif var == 1: 
    print "Files differ" 
elif var == -1: 
    print "Error" 

但是,這不給你任何信息什麼錯誤原因狀態= -1

+0

如何在調用函數中處理返回值? – sam

+0

回答更新,也許這就是你想要實現的 – loockass