wideband 发表于 2021-10-23 06:45:48

为什么代码输出结果是:<class 'NoneType'>,谢谢

def f(): pass
type(f())


a = type(f())

print(a)

wideband 发表于 2021-10-23 07:15:15

None是值,Nonetype是类型;

数字1是值,int是类型;

在python中是没有Null的,取而代之的是None。

wp231957 发表于 2021-10-23 07:49:24

wideband 发表于 2021-10-23 07:15
None是值,Nonetype是类型;

数字1是值,int是类型;


啥玩意,乱七八糟的
你想测试啥   你函数么有返回值,所以看你需求
是否添加括号的问题

wideband 发表于 2021-10-23 07:54:22

https://www.cnblogs.com/chaojiyingxiong/p/9744274.html

傻眼貓咪 发表于 2021-10-23 07:56:32

def f():
    pass

a = type(f()) # f() 有括号,表示执行函数,如有 return,则返回值,否则返回 None(None 类型就是 NoneType)
b = type(f)   # f 没有括号,表示不执行函数,返回内存地址,类型是函数 function

print(a)
print(b)

DragonNimble 发表于 2021-10-23 11:20:14

在python里,函数本身也可以是对象,所以你定义的所谓的“f"也是一个对象,他的类型是:<class 'function'>。而f()就不同了,它是一个函数返回值,是你调用f之后才会产生,而f的定义中并未返回任何值,所以在python中默认是<class 'NoneType'>。
页: [1]
查看完整版本: 为什么代码输出结果是:<class 'NoneType'>,谢谢