2013-05-15 202 views
1

由於某種原因,PyCharm警告我這行代碼。我只是記錄一個字典的內容,並得到一個警告:格式不需要映射PyCharm警告:「格式不需要映射」。這是什麼意思?

self._logger.info('Device channels set: %s' % self._device_channels) 

代碼工作得很好,這是不是真的很重要,但我發現了一個相當很少有這些,我不明白PyCharm試圖告訴我什麼。

我用Google搜索了它,但沒有發現任何有用的東西。

+1

作爲一個說明,[Docs文件] cenvert變量(http://docs.python.org/2.7/library/stdtypes.html#str.format )在新代碼中推薦使用'str.format()'來代替'''',因爲它更強大且更易讀。 –

+0

感謝您的提示。使用.format()刪除警告。我將開始使用它,因爲它顯然是Python 3中的標準。 – Micke

回答

1

我會假設PyCharm警告你使用一個簡單的格式字符串只有一個%s,同時提供一個字典作爲格式化參數。當使用命名格式(我相信%(name)s)時,可以使用字典參數來填充該值,格式爲argument['name']

爲了避免該警告,您可以嘗試自己強迫的參數傳遞給一個簡單的字符串,匹配字符串中的格式和參數,你提供:

self._logger.info('Device channels set: %s' % str(self._device_channels)) 
+0

謝謝!調用str()將刪除警告。那麼使用新的.format()格式。 – Micke

0

也許你self._device_channelsmap類型,'%s'string format需要str

所以它會convertmap類型爲str類型。並給你一個warning

您可以通過使用str(self._device_channels)

相關問題