如何在python3中将我的一行代码转换成多行代码?

如何在python3中将我的一行代码转换成多行代码?,python,python-3.x,refactoring,python-3.7,one-liner,Python,Python 3.x,Refactoring,Python 3.7,One Liner,我错误地将一段代码单线化,通过使用它,现在我被困在尝试使其多行。我需要使它可读,但我不能用我目前的知识 (lambda\uu after:[(已解析的\u url.netloc)][0]中的self.argv.domain的[(已解析的\u url.netloc)][0]如果已解析的是self.argv.domain,而不是self.argv.domain else\uu after())(lambda:None) self.argv是parser.parse_url()来自argparse,

我错误地将一段代码单线化,通过使用它,现在我被困在尝试使其多行。我需要使它可读,但我不能用我目前的知识

(lambda\uu after:[(已解析的\u url.netloc)][0]中的self.argv.domain的[(已解析的\u url.netloc)][0]如果已解析的是self.argv.domain,而不是self.argv.domain else\uu after())(lambda:None)
self.argv是parser.parse_url()来自argparse,解析的_url是urllib.parse import urlparse的
;parsed_url=urlparse(someurl)
。如果我能使它像原版一样,或者至少是一个多行程序,具有与原版相同的功能,那就太好了。我想我可能做过类似的事情,但我不确定

如果解析的是url.netloc而不是self.argv.domain:
某物
我推断不出更多的,有人能帮我把它再可读一遍吗。 另外,
\uuu after()
不是我定义的函数,它是由该工具添加的。Idk,如果有帮助的话,但我在访问我的提交后找不到任何线索:这个提交没有那一行,但是这个提交在第38行有那一行

编辑:在进行一些调试时,我发现每当我对该行进行注释时,我从测试中得到了32个结果,但当我取消注释时,我得到了34个结果。另外,当我打印self.argv.domain并用非常类似的代码解析_url.netloc时

打印(self.argv.domain)
打印(已解析的url.netloc)
(lambda uu after:[(已解析的u url.netloc)][0]中的self.argv.domain的[uu after(),如果已解析的是u url.netloc而不是self.argv.domain else u after())(lambda:None)
打印(self.argv.domain)
打印(已解析的url.netloc)
我得到了这个输出:

[!] Getting data from http://localhost/example.js
Before Self.argv.domain: None
Before Parsed_url.netloc: localhost
After Self.argv.domain: localhost
After Parsed_url.netloc: localhost
[!] Getting data from http://localhost/example.html
Before Self.argv.domain: None
Before Parsed_url.netloc: localhost
After Self.argv.domain: localhost
After Parsed_url.netloc: localhost

这表示argv.domain被设置为parsed_url.netloc。

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

[(已解析的url.netloc)][0]中self.arg.domain的[[uuu after()]
相当于:

self.arg.domain=parsed_url.netloc
__在()之后
因此,您的整个线路相当于:

如果解析的是url.netloc而不是self.argv.domain:
self.arg.domain=parsed_url.netloc

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

[(已解析的url.netloc)][0]中self.arg.domain的[[uuu after()]
相当于:

self.arg.domain=parsed_url.netloc
__在()之后
因此,您的整个线路相当于:

如果解析的是url.netloc而不是self.argv.domain:
self.arg.domain=parsed_url.netloc

你没有输入工具的原始代码的副本吗?如果有,我不会问,我删除了:(原始代码是一个多行函数吗?(即,你现在正在为这个lambda寻找一个等效的多行函数吗?)它不是一个函数,它是如果条件iircwait@fountainhead()不是递归调用,因为之后的
\uu只是
lambda:None
参数。您没有输入到工具中的原始代码的副本吗?如果有,我不会问,我删除了:(原始代码是多行函数吗?(即,您现在正在为这个lambda寻找等效的多行函数吗?)这不是一个函数,而是条件iircwait@fountainhead
\uuu after()
不是递归调用,因为
\uu after
只是
lambda:None
参数。