【发布时间】:2016-05-04 16:32:47
【问题描述】:
我正在尝试根据文件类型将文件存储在字典中。为此,我使用pygments API 如下:
# Initialization of the self.files dictionary
self.files = dict()
# Scanning and categorizing the files
for file in files:
lexer = guess_lexer__for_filename(file, None)
if type(lexer) in self.files:
self.files[type(lexer)].append(file)
else:
self.files[type(lexer)] = [file]
但是,现在,当通过pylint3 传递此代码时,我收到一条警告,告诉我应该使用isinstance() 代替type()(unidiomatic-typecheck)。
到目前为止,我发现解决此警告的最佳方法如下:
self.files = dict()
for file in files:
lexer = guess_lexer__for_filename(file, None)
if lexer.__class__ in self.files:
self.files[lexer.__class__].append(file)
else:
self.files[lexer.__class__] = [file]
但是,它真的能解决问题吗?而且,我开始怀疑在字典中使用类型作为键是否足够健壮。
那么,有没有更合适、更稳健的方法呢?欢迎任何具有良好论据的解决方案。
【问题讨论】:
标签: python dictionary pygments