【发布时间】:2017-07-21 12:38:51
【问题描述】:
假设我有一个函数需要在其他三个函数之一之间分派,具体取决于它是“类整数”、“类浮点”还是“类字符串”(或其他):
def handleThing(x):
if is_integer_like(x):
return handleInteger(x)
if is_floating_point_like(x):
return handleFloatingPoint(x)
if isinstance(x, basestring):
return handleString(x)
raise ValueError('handleThing only handles numbers and strings')
我如何编写is_integer_like 和is_floating_point_like 来处理以下类型, 需要使用numpy 库?我正在寻找类似鸭子打字的东西,但我很难过,因为似乎没有一种通用的方法可以让我区分它们。
当我做同样的事情来识别某个东西是否是映射类型时,除了isinstance(x, collections.Mapping) 我通常会做类似的事情
def ismapping(x):
return hasattr(x, 'iteritems')
我需要处理:
-
类整数类型:
intlong- 所有
numpy整数类型(np.int、np.int32、np.uint32等)
-
类似浮点的类型:
floatcomplex- 所有
numpy浮点类型(np.float32、np.float64等)
编辑:我也很好奇如何在 Python 2.5.3 中执行此操作,因为我坚持使用该版本的 Jython。
【问题讨论】:
-
也许here 可以满足您的需求?
标签: python python-2.7 types python-2.5