由於某種原因,PyCharm警告我這行代碼。我只是記錄一個字典的內容,並得到一個警告:格式不需要映射PyCharm警告:「格式不需要映射」。這是什麼意思?
self._logger.info('Device channels set: %s' % self._device_channels)
代碼工作得很好,這是不是真的很重要,但我發現了一個相當很少有這些,我不明白PyCharm試圖告訴我什麼。
我用Google搜索了它,但沒有發現任何有用的東西。
由於某種原因,PyCharm警告我這行代碼。我只是記錄一個字典的內容,並得到一個警告:格式不需要映射PyCharm警告:「格式不需要映射」。這是什麼意思?
self._logger.info('Device channels set: %s' % self._device_channels)
代碼工作得很好,這是不是真的很重要,但我發現了一個相當很少有這些,我不明白PyCharm試圖告訴我什麼。
我用Google搜索了它,但沒有發現任何有用的東西。
我會假設PyCharm警告你使用一個簡單的格式字符串只有一個%s
,同時提供一個字典作爲格式化參數。當使用命名格式(我相信%(name)s
)時,可以使用字典參數來填充該值,格式爲argument['name']
。
爲了避免該警告,您可以嘗試自己強迫的參數傳遞給一個簡單的字符串,匹配字符串中的格式和參數,你提供:
self._logger.info('Device channels set: %s' % str(self._device_channels))
謝謝!調用str()將刪除警告。那麼使用新的.format()格式。 – Micke
也許你self._device_channels
是map
類型,'%s'
這string format
需要str
所以它會convert
map
類型爲str
類型。並給你一個warning
您可以通過使用str(self._device_channels)
作爲一個說明,[Docs文件] cenvert變量(http://docs.python.org/2.7/library/stdtypes.html#str.format )在新代碼中推薦使用'str.format()'來代替'''',因爲它更強大且更易讀。 –
感謝您的提示。使用.format()刪除警告。我將開始使用它,因爲它顯然是Python 3中的標準。 – Micke