本文目录导读:

在 Python 中,快速判断变量类型主要有以下几种实用方法,我按推荐顺序排列:
最常用:type() 函数
# 基本用法
x = 42
print(type(x)) # <class 'int'>
# 直接比较类型
if type(x) == int:
print("是整数类型")
# 判断是否是特定类型
if type(x) in [int, float]:
print("是数字类型")
推荐:isinstance() 函数
# 推荐使用,支持继承关系
x = 42
# 判断单个类型
print(isinstance(x, int)) # True
print(isinstance(x, str)) # False
# 判断多个类型(元组)
print(isinstance(x, (int, float))) # True
# 判读自定义类
class Animal:
pass
class Dog(Animal):
pass
dog = Dog()
print(isinstance(dog, Animal)) # True(推荐isinstance的原因)
快速查看:.__class__ 属性
x = 3.14 print(x.__class__) # <class 'float'> print(x.__class__.__name__) # 'float'
强制类型检查:assert 断言(调试用)
def process_number(n):
assert isinstance(n, (int, float)), f"期望数字类型,得到{type(n)}"
return n * 2
# process_number("abc") # 会触发AssertionError
类型注解(Python 3.6+)
# 声明时标注类型(不会自动检查,但IDE会有提示)
def add(x: int, y: int) -> int:
return x + y
# 使用变量时标注
n: int = 42
value: str = "hello"
实战技巧
判断常见类型的最佳实践:
# 判断是否可调用
callable(print) # True
# 判断是否为None
x = None
x is None # True(标准写法)
type(x) is type(None) # True(绕弯写法)
# 判断容器类型
from collections.abc import Iterable
def process(data):
if isinstance(data, str):
print("处理字符串")
elif isinstance(data, (list, tuple)):
print("处理列表/元组")
elif isinstance(data, dict):
print("处理字典")
elif isinstance(data, Iterable):
print("其他可迭代对象")
快速记忆口诀:
- Type vs isinstance:类型判断用
isinstance,绝对比type()更准确 - None 判断:永远用
is None,不要用== None - 类型错误:用
try-except而不是先判断类型
# 更好的做法:异常处理优于类型检查
def safe_divide(x, y):
try:
return x / y
except ZeroDivisionError:
return "除数不能为零"
except TypeError:
return "参数类型错误"
最后的小建议:日常开发中,isinstance() 是最实用的选择,配合 type(x).__name__ 获取类型名用于调试。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播