You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python编程中type()和print(type())的使用区别是什么?

type()与print(type())的差异及print()可配置项说明

二者的核心区别

  • type()是Python内置的类型查询函数,返回值是传入参数的类型对象,不是字符串。你在Python交互式环境下直接输入type("abc")看到的<class 'str'>,是解释器自动调用类型对象的__repr__方法生成的可读展示文本,你拿到的返回值本身可以直接用于类型判断等逻辑操作,比如type("abc") is str的执行结果为True。
  • print(type())是先执行type()拿到类型对象,再将该对象传入print()函数做输出。print()会自动调用传入对象的__str__方法将其转为字符串打印到控制台,所以你看到的输出文本和交互式环境下直接调用type()的展示结果几乎一致,但print()的返回值固定为None,你无法用print(type("abc"))的返回值做任何类型判断操作。

你可以运行下方代码验证差异:

test_str = "测试文本"
# 直接调用type(),接收返回值
type_res = type(test_str)
# 调用print(type()),接收返回值
print_res = print(type(test_str))

# 验证返回值属性
print(f"type()返回值的类型:{type(type_res)}") # 输出 <class 'type'>
print(f"type()返回值是否等于str:{type_res is str}") # 输出 True

print(f"print(type())返回值的类型:{type(print_res)}") # 输出 <class 'NoneType'>
print(f"print(type())返回值是否等于str:{print_res is str}") # 输出 False

使用print(type())时你可以通过print()的可选参数自定义输出规则,常用可配置项如下:

  • sep:如果同时打印多个内容,指定内容之间的分隔符,默认值为半角空格
  • end:指定打印完成后末尾追加的字符,默认值为换行符\n
  • file:指定输出的目标文件对象,默认输出到控制台标准输出sys.stdout
  • flush:布尔类型参数,指定是否立即刷新输出缓冲区,默认值为False

自定义输出示例:

test_str = "自定义输出测试"
# 自定义分隔符和末尾字符
print("变量类型", type(test_str), sep=":", end="\n---\n")

运行后输出结果为:

变量类型:<class 'str'>
---

内容的提问来源于stack exchange,提问作者novacore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 22:00:03