Python 我们如何在一个单行循环中写这个?

Python 我们如何在一个单行循环中写这个?,python,for-loop,Python,For Loop,在Python中,是否有更多的合成方法来编写此代码 for n in dir(): if n[0]!='_': delattr(sys.modules[__name__], n) 这是非常可读的语法,不要更改它 for n in dir(): if n[0]!='_': delattr(sys.modules[__name__], n) 您可以将其复杂化,但它没有意义-代码必须是简单的第一短于第二短 可读性更强短代码是最好的-不短也不可读:) 我将这样写——对人类来说更

在Python中,是否有更多的合成方法来编写此代码

for n in dir():
    if n[0]!='_': delattr(sys.modules[__name__], n)

这是非常可读的语法,不要更改它

for n in dir():
  if n[0]!='_': 
    delattr(sys.modules[__name__], n)
您可以将其复杂化,但它没有意义-代码必须是简单的第一短于第二短

可读性更强短代码是最好的-不短也不可读:)

我将这样写——对人类来说更具可读性:

for name in dir():
  if not name.startswith('_'): 
    delattr(sys.modules[__name__], name)

你想用这个解决什么问题?听起来像。但是不,如果这是你正在采取的方法,我不认为有一种写这篇文章的更短的方法,而不会在列表理解中利用一些非常不明智的副作用(例如,如果n[0]!=“\code>”,请不要这样做!),这是一件非常奇怪的事情。不仅仅是因为您可以删除
sys
,这将停止进程。为什么您需要在一行中使用它?是的!我需要一行,但仍然可读:)好的建议,谢谢。我的问题是关于单线循环,但我还是很感激。谢谢