gpt4 book ai didi

python - 在 Python 中检查类型的规范方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 11:57:56 24 4
gpt4 key购买 nike

如何检查一个对象是否属于给定类型,或者它是否继承自给定类型?

如何检查对象 o 是否属于 str 类型?


初学者经常错误地期望字符串已经是“一个数字”——要么期望 Python 3.x input 转换类型,要么期望字符串像 '1' 也是同时一个整数。对于这些问题,这是错误的规范。请仔细阅读问题,然后使用How do I check if a string represents a number (float or int)? , How can I read inputs as numbers?和/或 Asking the user for input until they give a valid response视情况而定。

最佳答案

使用 isinstance检查 ostr 的实例还是 str 的任何子类:

if isinstance(o, str):

检查o的类型是否正好是str排除str的子类:

if type(o) is str:

上述的另一种选择:

if issubclass(type(o), str):

Built-in Functions在 Python 库引用中获取相关信息。


在 Python 2 中检查字符串

对于 Python 2,这是检查 o 是否为字符串的更好方法:

if isinstance(o, basestring):

因为这也会捕获 Unicode 字符串。 unicode不是 str 的子类;而 strunicode 都是 basestring 的子类.在 Python 3 中,basestring 不再存在,因为有 a strict separation字符串 (str) 和二进制数据 (bytes)。

或者,isinstance 接受一个类元组。如果 o 是任何 (str, unicode) 的任何子类的实例,这将返回 True:

if isinstance(o, (str, unicode)):

关于python - 在 Python 中检查类型的规范方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/152580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com