如何检查对象是否属于给定类型,或者它是否继承自给定类型?
如何检查对象是否为类型?o
str
初学者经常错误地期望字符串已经是“一个数字”——要么期望 Python 3.x 输入
转换类型,要么期望像“1”
这样的字符串同时也是一个整数。对于这些问题,这是错误的规范。请仔细阅读问题,然后使用如何检查字符串是否表示数字(浮点数或整数)?,如何将输入读取为数字?和/或要求用户输入,直到他们给出适当的有效响应。
网友回答:
检查对象类型的最 Python 方法是…不检查它。
由于 Python 鼓励鸭子类型,因此您应该按照自己想要的方式使用对象的方法。因此,如果您的函数正在寻找可写文件对象,请不要检查它是 的子类,只需尝试使用它的方法!try...except
file
.write()
当然,有时这些漂亮的抽象会崩溃,这就是你所需要的。但请谨慎使用。isinstance(obj, cls)
网友回答:
用于检查 是 的实例还是 的任何子类:isinstance
o
str
str
if isinstance(o, str):
要检查 的类型是否恰好是 ,不包括 str
的子类:o
str
if type(o) is str:
有关相关信息,请参阅 Python 库参考中的内置函数。
对于 Python 2,这是检查是否为字符串的更好方法:o
if isinstance(o, basestring):
因为这也会捕获 Unicode 字符串。 不是 的子类;两者和 都是 的子类。在 Python 3 中,不再存在,因为字符串 () 和二进制数据 () 有严格的分离。unicode
str
str
unicode
basestring
basestring
str
bytes
或者,接受类元组。这将返回 if 是以下任何子类的任何子类的实例:isinstance
True
o
(str, unicode)
if isinstance(o, (str, unicode)):
网友回答:
isinstance(o, str)
如果 是 或 的类型继承自 ,则将返回 。True
o
str
str
type(o) is str
将返回当且仅当是 str。如果 的类型继承自 。True
o
False
o
str
模板简介:该模板名称为【如何检查对象是否属于给定类型,或者它是否继承自给定类型?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。