簡體   English   中英

為什么出現此警告“預期類型'int'(匹配的通用類型'_T'),卻改為'Dict [str,None]”?

[英]Why is this warning “Expected type 'int' (matched generic type '_T'), got 'Dict[str, None]' instead”?

請仔細觀察問題並仔細回答, 您會發現它不是重復的 ,尤其是因為他們沒有回答我的問題。

嘗試創建一個新的空項目,並添加此代碼。 它工作正常,沒有警告:

game_data = {'boats': [], }
game_data['boats'].append({'name': None})

現在將其更改為:

game_data = {'boats': [], 'width': None, 'height': None, }
game_data['boats'].append({'name': None})

仍然沒有警告。 並再次更改為:

w = 12
game_data = {'boats': [], 'width': None, 'height': w, }
game_data['boats'].append({'name': None})

現在您將獲得:

Expected type 'int' (matched generic type '_T'), got 'Dict[str, None]' instead

我是唯一擁有這個的人嗎? 那為什么呢? 有解決方案可以使此警告消失嗎?

我的猜測是發出此警告的分析不夠清晰。

的值類型

game_data = {'boats': [], 'width': None, 'height': None} 

無法確定。

您輸入的第一個“真實”值是一個整數:

w = 12
game_data = {'boats': [], 'width': None, 'height': w}

因此,PyCharm 假定這是dict(string->int)

然后,您將一個內部dict作為值添加到您的空列表中:

game_data['boats'].append({'name': None})

因此,現在它有了一個dict(string-> int),突然變得很復雜,並發出警告。

那與PyCharm中的這個警告什么意思差不多? 關於:使用pycharm作為IDE將int添加到list of string s的list of string

至於如何擺脫警告:Jetbrains Resharper是非常可配置的,我想pycharm也可以。 該文檔https://www.jetbrains.com/help/pycharm/configuring-inspection-severities.html#severity可能會幫助您降低嚴重性-如果不是,我確定Jetbrains的支持會渴望幫助您-他們每當我在使用reshaper時遇到問題時。

暫無
暫無

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

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