2017-01-30 168 views
-2

我打電話的功能和a不從下面的功能保持值即mob_freturn編輯:從函數外部調用函數時不返回值嗎?

a = get_mobile()

功能是:

def get_mobile(): 
    ws = sheet_select() 
    mobile = [] 
    mob_i = [] 
    mob_f = [] 
    mob_j = [] 

    for col in ws.iter_cols(): 
     for cell in col: 
      if cell.value == 'Mobile': 
       x=column_index_from_string(cell.column) 
       for row in ws.iter_rows(min_col = x, min_row = 2, max_col = x): 
        for cell in row: 
         if cell.value != None: 
          mobile.append(cell.value) 
    for i in mobile: 
     h = i 
     h = h.replace(" ", "") 
     h = h.replace("+(91)-", ",") 
     h = h.replace("+91", "") 
     h = h.replace("-", "") 
     mob_i.append(h) 

    for i in mob_i: 
     h = i 
     h = h.split(',') 
     mob_j.append(h) 
    mob_x = [item for sublist in mob_j for item in sublist] 
    for i in mob_x: 
     if i != '': 
      h = i 
      return mob_f.append(h) 

如果我使用的代碼沒有定義它作爲function,它運行沒有問題,我得到mob_f

我認爲問題是return放置不正確。我嘗試了很多組合並保持失敗。昨天晚上這個相同的功能正在工作,我不明白我出錯的地方。

+1

您可以包括Excel文件? – MYGz

+0

@MYGz,excel文件打開等運行平穩。如果您認爲它是必需的,我會包括它。 – Sid

+0

Yeap。如果可以,請包括它。它提供了一個更好的理解。 – MYGz

回答

1

追加返回任何內容,我想你想的:

... 
for i in mob_x: 
    if i != '': 
     h = i 
     mob_f.append(h) 
return mob_f 
+0

謝謝。這固定了一切。我閱讀文檔,不知何故,得到的印象是,如果「返回」沒有評估表達式,它將不會返回。 – Sid