type_coercion#

用于强制转换类型并进行智能猜测的函数集合。

函数#

numberify(value)

boolify(value[, nullable, return_string])

将数字、字符串或序列类型转换为纯布尔值。

typify(value[, type_hint])

接受一个原始值(通常是字符串),并尝试从中创建更相关的类型。可选的 type_hint 将尝试将值强制转换为该类型。

maybecall(value)

numberify(value)#

示例

>>> [numberify(x) for x in ('1234', 1234, '0755', 0o0755, False, 0, '0', True, 1, '1')]
  [1234, 1234, 755, 493, 0, 0, 0, 1, 1, 1]
>>> [numberify(x) for x in ('12.34', 12.34, 1.2+3.5j, '1.2+3.5j')]
[12.34, 12.34, (1.2+3.5j), (1.2+3.5j)]
boolify(value, nullable=False, return_string=False)#

将数字、字符串或序列类型转换为纯布尔值。

参数:

value (number, string, sequence) -- 几乎任何类型

返回:

给定值的布尔表示形式

返回类型:

bool

示例

>>> [boolify(x) for x in ('yes', 'no')]
[True, False]
>>> [boolify(x) for x in (0.1, 0+0j, True, '0', '0.0', '0.1', '2')]
[True, False, True, False, False, True, True]
>>> [boolify(x) for x in ("true", "yes", "on", "y")]
[True, True, True, True]
>>> [boolify(x) for x in ("no", "non", "none", "off", "")]
[False, False, False, False, False]
>>> [boolify(x) for x in ([], set(), dict(), tuple())]
[False, False, False, False]
>>> [boolify(x) for x in ([1], set([False]), dict({'a': 1}), tuple([2]))]
[True, True, True, True]
typify(value, type_hint=None)#

接受一个原始值(通常是字符串),并尝试从中创建更相关的类型。可选的 type_hint 将尝试将值强制转换为该类型。

参数:
  • value (Any) -- 通常是字符串,而不是序列

  • type_hint (type or tuple[type])

示例

>>> typify('32')
32
>>> typify('32', float)
32.0
>>> typify('32.0')
32.0
>>> typify('32.0.0')
'32.0.0'
>>> [typify(x) for x in ('true', 'yes', 'on')]
[True, True, True]
>>> [typify(x) for x in ('no', 'FALSe', 'off')]
[False, False, False]
>>> [typify(x) for x in ('none', 'None', None)]
[None, None, None]
maybecall(value)#