为什么我们不需要导入任何模块来使用 python 中的 print(),input(),len(),int(),etc 函数



正如定义所说,要使用任何内置函数,我们需要首先导入程序中的各个模块但是我们如何在不导入任何模块的情况下使用print((、input((、len((等更多函数

请有人澄清。 (如果我的问题与此无关,很抱歉(

因为Python语言设计者选择在默认情况下使它们可用,前提是它们足够有用,始终可用。这在以下情况下尤其常见:

  1. 可以访问的最简单的I/O函数(例如print/input(,尤其是在交互式解释器中玩东西时
  2. 作为特殊方法包装器的函数(例如len用于__len__iter用于__iter__(,因为它降低了人们直接调用特殊方法以避免import的风险
  3. 内置类(例如intsetstr等(,在技术上不是函数,但它们经常使用(可能作为文字(,并且无论如何都需要加载类的定义来进行解释器的基本操作

简而言之,你可以自动访问它们,因为它们可能无论如何都要加载它们(在内置类的情况下(,自动访问它们很方便,设计者认为它们很可能会被频繁使用,没有什么比这更复杂的了。";可能被频繁使用";是重要的;CPython引用解释器上的一些模块实际上被烘焙到解释器本身中,而不是作为文件系统上的单独模块存在(例如sys(,但这些模块的内容被认为不够重要/常用,不值得注入内置命名空间(在那里它们可能会与用户定义的名称冲突(。

内置项是通过builtins模块提供的,因此,如果您想查看其中的内容(或者,更糟糕的是,更改任何地方的内置的可用内容(,您可以导入它并对其执行常规属性操作,以查询/添加/删除/更改可用的内置项集(例如,site模块这样做是为了注入exit准内置项(。

最新更新