最近幾天 頻繁看到有這種寫法
BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"
第一次看到的pythoner看到可能會有點懵逼。因為我們見得最多的應該是這樣的字符串格式化
'%s sdjiaosdoijasoid %s' % (a, b)
而上面的寫法很容易讓我們聯想到python的 format格式化寫法。但是事實是並不是這樣的 我們可能會做這樣的嘗試
levelname = 'haha' name = 'xixi' message = 'kexuan' BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" print BASIC_FORMAT % (levelname, name, message)
但是得到的結果卻是
print BASIC_FORMAT % (levelname, name, message) TypeError: format requires a mapping
看來並不是這么寫的。經過好一陣google 才發現原來這種寫法接受的對象是字典,所以正確的寫法是
levelname = 'haha' name = 'xixi' message = 'kexuan' BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" print BASIC_FORMAT % {'levelname': levelname, 'name': name, 'message': message}
得到的結果
haha:xixi:kexuan
所以遇到這種寫法的時候,大家一定要特別注意呀。