我正在尝试使用 来自 functools的singledispatch编写一个通用函数。我希望函数根据传递参数的类型表现出不同的行为——在这种情况下,它将是一列数据框,可以是不同的 dtype:int64、float64、object、bool 等。
我试图通过实验做一些基本的事情:
@singledispatch
def sprint(data):
print('default success')
@sprint.register('float64')
def _(data):
print('float success')
@sprint.register('int64')
def _(data):
print('int success')
# test
from sklearn.datasets import load_iris
data_i = load_iris()
df_iris = pd.DataFrame(data_i.data, columns=data_i.feature_names)
sprint(df_iris['sepal length (cm)'])
但显然我得到一个错误,因为 python 不查看列的 dtype 属性。
有没有办法解决它?
我会很感激帮助。