当用变量调用函数f时,我想检查var是否是数据帧:
def f(var):
if var == pd.DataFrame():
print "do stuff"
我想解决方案可能很简单,但即使有
def f(var):
if var.values != None:
print "do stuff"
我不能让它像预期的那样工作。
1 Answers
使用内置isinstance()
作用
import pandas as pd
def f(var):
if isinstance(var, pd.DataFrame):
print("do stuff")
您如何将其推广到用户可以使用您定义的功能,但没有使用的情况import pandas as pd
,但只是import pandas
? 只需执行or
在这两种可能性上,还是有更复杂的东西我不知道?
一个可能的解决方案是将import语句放在函数中,这样用户就不可能使用其他方法导入pandas。为了加快速度(避免为了简单的检查而导入整个panda库),您可以使用以下方法import pandas.DataFrame as panda_type
然后在内部使用isinstance(var, panda_type)