python单行返回值if availab if not返回None

python单行返回值if availab if not返回None,python,Python,假设我有一个变量name=“Jack”。我可以这样检查 if name: return name else: name = None return name 是否有任何方法可以在一行中处理它,如: new\u name=name如果不返回none 它只返回变量值(如果可用),如果不可用,则应返回NoneYes return name if name else None 它的工作原理是: >>> def test_name(name): ...

假设我有一个变量
name=“Jack”
。我可以这样检查

if name:
    return name
else:
    name = None
    return name
是否有任何方法可以在一行中处理它,如:

new\u name=name如果不返回none
它只返回变量值(如果可用),如果不可用,则应返回
None

Yes

return name if name else None
它的工作原理是:

>>> def test_name(name):
...     return name if name else None
... 
>>> print test_name("")
None
>>> print test_name("Jack")
Jack

它的工作原理是:

>>> def test_name(name):
...     return name if name else None
... 
>>> print test_name("")
None
>>> print test_name("Jack")
Jack

是的,您可以在一行中完成,如我的评论所示:

return name if name else None
或者更简单一些(如Martijn所指出的):


是的,您可以在一行中完成,如我的评论所示:

return name if name else None
或者更简单一些(如Martijn所指出的):


为什么不
如果name-else-None返回name
?确保在Python2.x(从Python2.5开始)和Python3.x中都可以。请参见此处:。对于Python 2.5之前的版本,可以采取变通办法。在这种特定情况下,
返回name或None
也可以,因为对于name的任何错误值,您都希望返回
None
。如果您想在返回前将
名称
指定给
None
,如果它是
None
,您可以分两行操作:1<代码>名称=名称或无2
返回名称
您根本不需要该
否则
在那里。如果没有显式的
返回
,它将已经
返回
None
。如果name-else-None,为什么不
返回name?确保在Python2.x(启动Python2.5)和Python3.x中都可以。请参见此处:。对于Python 2.5之前的版本,可以采取变通办法。在这种特定情况下,
返回name或None
也可以,因为对于name的任何错误值,您都希望返回
None
。如果您想在返回前将
名称
指定给
None
,如果它是
None
,您可以分两行操作:1<代码>名称=名称或无
2
返回名称
您根本不需要该
否则
在那里。如果没有显式的
返回
,它将已经
返回
。我希望它在变量
中是新的\u name=name,如果name-else-None
@aryan,那么您的示例将有效是的。。。我没有打印,所以没有看到值我希望它是变量
new\u name=name如果name else None
@aryan您的示例将有效是的,有效。。。我没有打印,所以没有看到它的价值