簡體   English   中英

“'NoneType' object 不可訂閱”錯誤

[英]"'NoneType' object is not subscriptable" error

我是 python 的新手,這段代碼有問題。 我不明白為什么我不能運行代碼:print(m[1][1])

我總是收到此錯誤消息:TypeError: 'NoneType' object 不可訂閱

    edges = [(1,2), (2,7), (1,3), (2,4), (4,7), (3,5), (4,5), (5,6), (6,7), (1,8), (5,8), (6,9), (7,9), (9,10), (5,10), (8,10)]`

    def generateAdjMatrix(edges):
    
        max_knoten = max(max(edges))
        
        matrix = [[0 for i in range(max_knoten)] for j in range(max_knoten)]
        
        for kante in edges:
            matrix[kante[0]-1][kante[1]-1] = 1
    pass
    
    if __name__ == '__main__':
        m = generateAdjMatrix(edges)
        print(m[1][1])
    
    pass

m = generateAdjMatrix(edges)之后mNone因為generateAdjMatrix沒有明確返回任何東西。

請參閱文檔中的定義函數

來自其他語言,您可能 object fib不是 function 而是一個過程,因為它不返回值。 事實上,即使沒有 return 語句的函數也會返回一個值,盡管這是一個相當無聊的值。 這個值稱為None (它是一個內置名稱)。

m = generateAdjMatrix(edges)

你正在調用這個 function,這個 function 是用這個主體聲明的:

max_knoten = max(max(edges))
    
matrix = [[0 for i in range(max_knoten)] for j in range(max_knoten)]
    
for kante in edges:
    matrix[kante[0]-1][kante[1]-1] = 1

你看到任何return嗎? 不,因為你的 function 相當於C / C++ void function。

那么什么被放入m Nothing,在 Python 中是Nonetype為 NoneType 的NoneType


一般情況下,在Python編程時,如果出現這樣的錯誤信息:

TypeError: 'NoneType' object is not subscriptable

你必須檢查你下標的變量來自哪里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM