如何在python3中将我的oneliner小代码变成multiliner?

How to make my small code of oneliner into multiliner in python3?

我错误地将一段代码单行化,使用这个 Onelineizer 现在我无法尝试将其变成多行。

(lambda __after: [__after() for self.argv.domain in [(parsed_url.netloc)]][0] if parsed_url.netloc and not self.argv.domain else __after())(lambda: None)

self.argv 是来自 argparse 的 parser.parse_url(),parsed_url 是 from urllib.parse import urlparse; parsed_url = urlparse(someurl)。我认为代码可能是这样写的:

if parsed_url.netloc and not self.argv.domain:
  something

我无法推断更多,谁能帮我让它再次可读。 另外,__after() 不是我定义的函数,它是由那个工具添加的。

Onelinerizer 使用列表理解来翻译赋值语句:

[__after() for self.arg.domain in [(parsed_url.netloc)]][0]

相当于:

self.arg.domain = parsed_url.netloc
__after()

所以你的整行等同于:

if parsed_url.netloc and not self.argv.domain:
    self.arg.domain = parsed_url.netloc