
Python 是一种动态类型语言,这意味着变量的类型不是在声明时定义的,而是在为它赋值时定义的。这可能会经常出现变量类型错误,尤其是在大型复杂程序中。

Python 中有两个内置函数可用于检查变量的类型:
type():此函数检测给定变量的类型对象并返回。isinstance():如果变量类型与传递给它的实例类型匹配,则返回 True,否则返回 False。示例 1使用代码检查 x 和 y 的类型。变量 x 是整数,变量 y 是字符串。
x = 123y = "Hello World"print(type(x))print(type(y))print(isinstance(x, int))print(isinstance(x, str))print(isinstance(y, str))print(isinstance(y, int))#输出:<class 'int'><class 'str'>TrueFalseTrueFalse示例 2创建一个函数,通过调用 ininstance() 方法检查其参数的类型。
def my_fun(par): if isinstance(par, int): print("该对象是一个整数") elif isinstance(par, str): print("该对象是一个字符串") elif isinstance(par, float): print("该对象是一个浮点数") else: print("其他类型")x = 123y = "123"z = 123.0my_fun(x)my_fun(y)my_fun(z)# 输出:该对象是一个整数该对象是一个字符串该对象是一个浮点数示例 3利用 try-except 块来捕获输出错误。
x = 123y = "Hello World"try: sum = x + yexcept TypeError: print("不能将整数和字符串相加")type() 与 isinstance() 区别何时使用 type()? 何时使用 isinstance()?
在需要精确确定对象的数据类型时使用 type()。例如,要检查变量是否为列表:type(var) == list。
如果要判断两个类型是否相同推荐使用 isinstance(),用于检查第一个参数是否是第二个参数的实例或子类。它能更灵活地检查继承和多种类型。
Python 中的数据类型str intfloatcomplexlisttuplerangedictboolbytes❝
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。
❞