检查variables是否是dataframe
当我的函数f被调用一个variables我想检查var是一个pandas数据框:
def f(var): if var == pd.DataFrame(): print "do stuff"
我想解决scheme可能很简单,但即使
def f(var): if var.values != None: print "do stuff"
我不能像预期那样工作。
isinstance ,没有别的。
PEP8明确表示isinstance
是检查types的首选方法
Yes: if isinstance(obj, int): No: if type(obj) is type(1):
甚至不要考虑
if obj.__class__.__name__ = "MyInheritedClass": expect_problems_some_day()
isinstance
处理inheritance(请参阅python中的isinstance()和type()之间的区别 )。 例如,它会告诉你一个variables是一个string( str
还是unicode
),因为它们来自basestring
)
if isinstance(obj, basestring): i_am_string(obj)
使用内置的isinstance()函数。
import pandas as pd def f(var): if isinstance(var, pd.DataFrame): print "do stuff"