这是Scala中的模式匹配switch case,它基本上将选择器变量的不同数据类型与相应的case变量匹配,并对其进行一些操作
def valueToString(x: Any): String = x match {
case d: BigDecimal =>
/* do something here */
case a: Array[Byte] =>
new String(a, "UTF-8")
case s: Seq[_] =>
/*do something here */
case m: Map[_,_] =>
/*do something here */
case d: Date =>
/*do something here */
case t: Timestamp =>
/*do something here */
case r: Row =>
/*do something here */
}
Python 并不完全支持这种模式匹配。我了解 Python 中的切换器,但它需要正则表达式或变量的实际匹配。如何在Python中实现上述功能
类型检查
使用 isinstance
方法检查通用输入的类型
import datetime
def value_to_string(input):
# String
if isinstance(input, basestring):
return 'string'
# BigDecimal
if isinstance(input, int):
return 'int'
# Array
if isinstance(input, list):
return 'list'
# Map
if isinstance(input, dict):
return 'dictionary'
# Date
if isinstance(input, datetime.date):
return 'date'
# ...
用法
print value_to_string('')
print value_to_string(1234)
print value_to_string([1,2,3])
print value_to_string({"id": 1})
print value_to_string(datetime.datetime.now())
输出
string
int
list
dictionary
date
我是一名优秀的程序员,十分优秀!