Rad*_*Hex 3 python beautifulsoup
我经常编写如下代码
try:
self.title = item.title().content.string
except AttributeError, e:
self.title = None
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法来解决这个问题?一个班轮?
你有什么例外item.title()?裸露的except(可怕的做法!)并没有告诉我们.如果它是一个AttributeError(例如,item没有title方法),
self.title = getattr(item, 'title', lambda: None)()
Run Code Online (Sandbox Code Playgroud)
可能是你寻求的单线(但是表现不会有太大的不同,请注意;-).
编辑:由于OP完全改变了问题(它最初只是使用self.title(),它现在正在使用self.title().content.string,并且特意捕获AttributeError而不是使用裸except),此答案的先前版本当然不再适用.现在正确的答案是:尝试单行是一种荒谬的方法,当属性引用链c继续增长越来越长时(下一次将有多少,9??因为他们在第一次编辑时从一跳到三跳... ;-).
并且不知道长时间表达的许多基本操作中的哪一个,Demeter -scoffing引用链可能会引起AttributeError,任何优化尝试都会相当盲目.