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()函数的可配置参数
使用print(type())时你可以通过print()的可选参数自定义输出规则,常用可配置项如下:
sep:如果同时打印多个内容,指定内容之间的分隔符,默认值为半角空格end:指定打印完成后末尾追加的字符,默认值为换行符\nfile:指定输出的目标文件对象,默认输出到控制台标准输出sys.stdoutflush:布尔类型参数,指定是否立即刷新输出缓冲区,默认值为False
自定义输出示例:
test_str = "自定义输出测试" # 自定义分隔符和末尾字符 print("变量类型", type(test_str), sep=":", end="\n---\n")
运行后输出结果为:
变量类型:<class 'str'> ---
内容的提问来源于stack exchange,提问作者novacore
相关产品推荐
相关产品推荐

