如何验证给定输入是否为Python中的对象?

时间:2019-12-30 05:43:32

标签: python function validation object types

我正在创建一个验证功能,该功能将验证输入是否为对象。

我不知道该如何处理。因此,任何帮助或建议都是非常有益的。

任何对对象验证的搜索都会导致我在Django中进行表单验证,而这并不是我想要的。

2 个答案:

答案 0 :(得分:1)

假设您要验证用户创建的类的对象(因为否则python中的所有对象都是对象),请在Python3中进行尝试:

import inspect
def is_object(x):
  if isinstance(x, (int, str, float, complex)):
    print("Built-in class's object")
    return False
  elif hasattr(x, '__class__') and inspect.isclass(x) is False:
    print("Custom class's object")
    return True
  elif inspect.isclass(x):
    print("Class")
    return False
  else:
    return False

答案 1 :(得分:0)

您可以使用type()验证给定的输入。

>>> a= 10
>>> type(a)
<class 'int'>

>>> class custom:
        pass
>>> a=custom()
>>> type(a)
<class '__main__.custom'>

>>>a="hello"
>>> type(a)
<class 'str'>

>>>a=[]
>>>type(a)
<class 'list'>

否则您可以使用isinstance()方法。

>>>a=[]
>>>isinstance(a,list)
True

>>> a="hello"
>>>isinstance(a,str)
True

>>>a=122
>>>isinstance(a,str)
False

>>>a=122
>>>isinstance(a,float)
False