鱼C论坛

 找回密码
 立即注册
查看: 3044|回复: 5

简单的选择题0.0

[复制链接]
发表于 2015-7-30 01:37:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def f():pass

print type(f())

1.     <type ‘tuple’>

2.       <type ‘function’>

3.     <type ‘NoneType’>

4.     <type ‘str’>

5.     <type ‘type’>

为什么执行 上述的语句后,执行结果是 3 而不是 2  
f是一个函数,type(f)  返回是<type ‘function’>
而 type(F())得到的却是 <type ‘NoneType’>
如果将函数修改为   def f(b,c):pass 即加入形参
再次执行  type(f())  则出现异常,并且执行 type(f(b))或 type(f(c))或 type(f(b,c))
都会发生异常,那么在这种情况下正确的调用该是如何书写呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-7-30 09:22:08 | 显示全部楼层
本帖最后由 戴宇轩 于 2015-7-30 15:06 编辑

f是function,type(f())是返回值的类型,函数主体是pass,返回值是None,所以是Nonetype
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-30 02:37:38 | 显示全部楼层
print type(f()) 打印的是f()的返回值的类型呀,当然是None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-30 02:38:40 | 显示全部楼层
type()的参数是一个函数,则说明要的是函数的返回值,函数用它的返回值说明了它干了啥事!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-30 15:08:05 | 显示全部楼层
xiongjingkui 发表于 2015-7-30 09:22
f是function,type(f())是返回值的类型,函数主体是pass,返回值是None,所以是Nonetype

为什么带有形参的时候就会报错呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-30 20:04:39 | 显示全部楼层
默.默 发表于 2015-7-30 15:08
为什么带有形参的时候就会报错呢?

你定义的函数有形参,调用的时候就必须按照顺序来传入实参,这样才不会报错,传入个数不符或者不传入实参都会报错的,你尝试print(type(f(1,2)))试试,就是好的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-16 23:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表