鱼C论坛

 找回密码
 立即注册
查看: 42|回复: 3

[已解决]第002讲课后习题的疑问

[复制链接]
发表于 2026-5-5 23:10:24 | 显示全部楼层 |阅读模式

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

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

x
第一题中写Python的内置函数除了,input()、print(),还有int(),但是看视频的时候小鱼老师通过代码dir(__builtins__)可以看到所有的内置函数,我的疑问是这个dir(__builtins__)对于Python来说不是内置函数吗?如果不是那它是属于什么呢?
最佳答案
2026-5-5 23:13:40
新路有平宽 发表于 2026-05-05 23:13
FishC 发表于 2026-5-5 23:10
关于你的疑问,dir()  ...


这个问题需要结合原题目的具体要求来解释。通常课后习题第一题是要求“写出至少三个 Python 内置函数”,而教材中小甲鱼给出的示例是 input()、print()、int()。这三个函数是初学者最常用到的,但 dir() 同样是内置函数,而且是我们在视频中刚见过的。为什么答案不写成 dir() 呢?主要是因为:

1. 题目可能只是要求列举三个例子,“input、print、int”已经是满足要求的答案了,不需要刻意写出所有内置函数。
2. 视频中虽然演示了 dir(__builtins__),但当时并没有把 dir() 本身作为重点讲解对象,而是把它当作查看工具来用。题目更倾向于让初学者记住最常用的输入输出函数和类型转换函数,而不是内省函数。
3. 如果你在答案中写 dir(),也是完全正确的,因为题目没有限定范围,只是三个例子而已。教材只是给出了一个常见的参考答案,并非唯一答案。

所以,答案是【包括】dir() 的,只是教材没有特意把它写进去。如果你在作业中写了 dir(),放心,老师一定会认为你答得很好。

> 如果要严格说:dir() 绝对是内置函数,但题目问的是“除了input()、print(),还有int()”这个句子本身出自教材的例题答案,并不是在否定 dir() 的地位。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2026-5-5 23:10:37 | 显示全部楼层
关于你的疑问,dir() 本身也是 Python 的内置函数之一,它属于 builtins 模块。在视频中,小甲鱼老师使用 dir(__builtins__) 这个命令来查看所有内置函数,这里实际上是用 dir() 这个内置函数去查看 __builtins__ 这个内置模块中的内容。所以 dir() 当然也是内置函数,只是它通常用来“列出对象的所有属性和方法”,很少被归类到 input()、print() 这种“常用输入输出”类别里。

简单总结:
  • dir() 是内置函数,属于 builtins 模块。
  • __builtins__ 是内置模块(或引用),里面包含了所有内置函数、异常等。
  • 视频中通过这个命令列出的所有名字,其中包括了 int、input、print 等,也包括了 dir 本身。


所以你的疑问其实可以这样理解:你问 dir(__builtins__) 是不是内置函数?答案是“不是”,它是一个**调用内置函数 dir() 的表达式**,而 dir() 本身才是内置函数。

希望这个解释能帮你理清概念。如果有其他细节想讨论,随时回复。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-5-5 23:13:31 | 显示全部楼层
FishC 发表于 2026-5-5 23:10
关于你的疑问,dir() 本身也是 Python 的内置函数之一,它属于 builtins 模块。在视频中,小甲鱼老师使用 d ...

那这个题的答案为什么不是dir()呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-5-5 23:13:40 | 显示全部楼层    本楼为最佳答案   
新路有平宽 发表于 2026-05-05 23:13
FishC 发表于 2026-5-5 23:10
关于你的疑问,dir()  ...


这个问题需要结合原题目的具体要求来解释。通常课后习题第一题是要求“写出至少三个 Python 内置函数”,而教材中小甲鱼给出的示例是 input()、print()、int()。这三个函数是初学者最常用到的,但 dir() 同样是内置函数,而且是我们在视频中刚见过的。为什么答案不写成 dir() 呢?主要是因为:

1. 题目可能只是要求列举三个例子,“input、print、int”已经是满足要求的答案了,不需要刻意写出所有内置函数。
2. 视频中虽然演示了 dir(__builtins__),但当时并没有把 dir() 本身作为重点讲解对象,而是把它当作查看工具来用。题目更倾向于让初学者记住最常用的输入输出函数和类型转换函数,而不是内省函数。
3. 如果你在答案中写 dir(),也是完全正确的,因为题目没有限定范围,只是三个例子而已。教材只是给出了一个常见的参考答案,并非唯一答案。

所以,答案是【包括】dir() 的,只是教材没有特意把它写进去。如果你在作业中写了 dir(),放心,老师一定会认为你答得很好。

> 如果要严格说:dir() 绝对是内置函数,但题目问的是“除了input()、print(),还有int()”这个句子本身出自教材的例题答案,并不是在否定 dir() 的地位。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-25 06:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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