使用变量调用函数f时,我想检查var是否为数据帧:
定义f(变量):
如果var==pd.DataFrame():
打印“做事”
我想解决办法可能很简单,但即使有
定义f(变量):
如果变量值!=无:
打印“做事”
我不能让它像预期的那样工作
使用isinstance,无需其他操作:
如果存在(x,pd.数据帧):
... # 做点什么
PEP8明确指出,isinstance是检查类型的首选方法
否:类型(x)为pd.DataFrame
否:类型(x)==pd.DataFrame
是:isinstance(x,pd.数据帧)
甚至不要去想
如果对象为类名称,则为“数据帧”:
有一天会有问题
isinstance处理继承(请参见type()和isinstance()之间的区别)。例如,它将告诉您一个变量是否是字符串(或者是str或者unicode),因为它们源自basestring)
如果isinstance(对象,基串):
i_am_字符串(obj)
专门针对pandasDataFrame对象:
将熊猫作为pd导入
isinstance(变量,pd.数据帧)