如何在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
我错误地将一段代码单行化,使用这个 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