下面的代码获取一个值,如果值是basestring,则返回它.如果该值不是basestring,则将其转换为字符串,但如果值为None,则返回空字符串.
有更多的Pythonic方式吗?
lambda value: value if isinstance(value, basestring) else str(value) if value is not None else ""
Run Code Online (Sandbox Code Playgroud)
我甚至不打算检查它是否是一个字符串,只是转换它(这将在Python 3.x但不是2.x).
lambda value: str(value) if value is not None else ""
Run Code Online (Sandbox Code Playgroud)
原因是如果它已经是a str,那么调用str()基本上什么都不做.
>>> s = 'test'
>>> id(s)
35584672
>>> id(str(s))
35584672
>>> j = str(s)
>>> id(j)
35584672
Run Code Online (Sandbox Code Playgroud)
注意他们都有相同的id?这意味着没有创建新对象.
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |