鱼C论坛

 找回密码
 立即注册
查看: 1322|回复: 7

[已解决]惊了!用不同方法输出的 BIF 的个数居然不一样?

[复制链接]
发表于 2020-9-12 12:49:43 | 显示全部楼层 |阅读模式

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

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

x
各位前辈好,新人报道!

今天刚开始学 Python ,有一道课后习题问 BIF 的数量,为了偷懒,不想一个个数,就网上搜了一下,发现了两种方法,但输出的结果却不一样,一个输出“153”,一个输出“154”,请问哪里出了问题?(python 版本 3.8.5)

>>> len(dir(__builtins__))
153
>>> import builtins
>>> len(dir(builtins))
154
>>>
最佳答案
2020-9-12 14:23:18
这两个本来就不完全一样,你这样写,builtins 多一个 '_'

__builtins__是对内建模块 builtins 的引用,使用__builtins__的时候不需要import,但是使用 builtins 是需要import的。
在 __main__ 模块中,__builtins__就是 builtins  的完全引用,两者是完全一样的
在非 __main__ 模块中,__builtins__ 仅仅是 builtins.__dict__ 的引用,是一个字典
屏幕截图 2020-09-12 124629.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-12 12:55:57 | 显示全部楼层
import builtins
a=dir(builtins)
print(len(a))
print()
b=dir(__builtins__)
print(len(b))

都是153
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-12 13:37:25 | 显示全部楼层

感谢回复!
你这个的确都是 153 ,但现在问题是,我那种写法为什么会不一样呢,难道是多出来一个空的 object ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-12 13:47:21 | 显示全部楼层
arreaty 发表于 2020-9-12 13:37
感谢回复!
你这个的确都是 153 ,但现在问题是,我那种写法为什么会不一样呢,难道是多出来一个空的 ob ...

写法?不是一样的写法么?
import builtins
print(len(dir(builtins)))
print()
print(len(dir(__builtins__)))
哪里不一样了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-12 14:01:57 | 显示全部楼层
因为第二次执行会多一个 _ 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-12 14:23:18 | 显示全部楼层    本楼为最佳答案   
这两个本来就不完全一样,你这样写,builtins 多一个 '_'

__builtins__是对内建模块 builtins 的引用,使用__builtins__的时候不需要import,但是使用 builtins 是需要import的。
在 __main__ 模块中,__builtins__就是 builtins  的完全引用,两者是完全一样的
在非 __main__ 模块中,__builtins__ 仅仅是 builtins.__dict__ 的引用,是一个字典
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-12 16:24:16 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-9-12 14:01
因为第二次执行会多一个 _ 。

的确,我发现前一个会对后一个产生影响,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-12 16:30:20 | 显示全部楼层
sunrise085 发表于 2020-9-12 14:23
这两个本来就不完全一样,你这样写,builtins 多一个 '_'

__builtins__是对内建模块 builtins 的引用, ...

感谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 17:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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