48 lines
1014 B
Python
48 lines
1014 B
Python
|
|
import typing
|
||
|
|
|
||
|
|
|
||
|
|
# 创建一个管道函数
|
||
|
|
def make_pipe(fs: typing.List[callable]) -> callable:
|
||
|
|
"""
|
||
|
|
创建一个管道函数
|
||
|
|
@param fs: callable 数据过滤函数
|
||
|
|
@return: any
|
||
|
|
"""
|
||
|
|
def helper(val: any) -> any:
|
||
|
|
return my_pipe(val, fs)
|
||
|
|
return helper
|
||
|
|
|
||
|
|
|
||
|
|
def my_pipe(val: any, fs: typing.List[callable]) -> any:
|
||
|
|
"""
|
||
|
|
管道数据过滤函数
|
||
|
|
@param val: any
|
||
|
|
@param fs: callable 数据过滤函数
|
||
|
|
@return: any
|
||
|
|
"""
|
||
|
|
from functools import reduce
|
||
|
|
return reduce(lambda x, y: y(x), fs, val)
|
||
|
|
|
||
|
|
|
||
|
|
def is_number(s) -> bool:
|
||
|
|
"""
|
||
|
|
@name 判断输入参数是否一个数字
|
||
|
|
@author Zhj<2022-07-18>
|
||
|
|
@param s<string|integer|float> 输入参数
|
||
|
|
@return bool
|
||
|
|
"""
|
||
|
|
try:
|
||
|
|
float(s)
|
||
|
|
return True
|
||
|
|
except ValueError:
|
||
|
|
pass
|
||
|
|
|
||
|
|
try:
|
||
|
|
import unicodedata
|
||
|
|
unicodedata.numeric(s)
|
||
|
|
return True
|
||
|
|
except (TypeError, ValueError):
|
||
|
|
pass
|
||
|
|
|
||
|
|
return False
|