iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >说Python内置函数并不是万能的原因有哪些
  • 869
分享到

说Python内置函数并不是万能的原因有哪些

2023-06-16 02:06:26 869人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“说python内置函数并不是万能的原因有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“说Python内置函数并不是万能的原因有哪些”吧!1、内置函数的查找优先级最低内

这篇文章主要讲解了“说python内置函数并不是万能的原因有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“说Python内置函数并不是万能的原因有哪些”吧!

1、内置函数的查找优先级最低

内置函数的名称并不属于关键字,它们是可以被重新赋值的。

比如下面这个例子:

# 正常调用内置函数 list(range(3))  # 结果:[0, 1, 2]  # 定义任意函数,然后赋值给 list def test(n):     print("Hello World!") list = test list(range(3)) # 结果:Hello World!

说Python内置函数并不是万能的原因有哪些

在这个例子中,我们将自定义的 test 赋值给了 list,程序并没有报错。这个例子甚至还可以改成直接定义新的同名函数,即"def list():  …"。

这说明了 list 并不是 Python 限定的关键字/保留字。

查看官方文档,可以发现 python3.9 有35个关键字,明细如下:

说Python内置函数并不是万能的原因有哪些

如果我们将上例的 test 赋值给任意一个关键字,例如"pass=test",就会报错:SyntaxError: invalid syntax。

由此,我们可以从这个角度看出内置函数并不是万能的:它们的名称并不像关键字那般稳固不变,虽然它们处在系统内置作用域里,但是却可以被用户局部作用域的对象所轻松拦截掉!

因为解释器查找名称的顺序是“局部作用域->全局作用域->内置作用域”,因此内置函数其实是处在最低优先级。

对于新手来说,这有一定的可能会发生意想不到的情况(内置函数有 69 个,要全记住是有难度的)。

那么,为什么 Python 不把所有内置函数的名称都设为不可复写的关键字呢?

一方面原因是它想控制关键字的数量,另一方面可能是想留给用户更多的自由。内置函数只是解释器的推荐实现而已,开发者可以根据需要,实现出与内置函数同名的函数。

不过,这样的场景极少,而且开发者一般会定义成不同名的函数,以 Python 标准库为例,ast模块有 literal_eval() 函数(对标  eval() 内置函数)、pprint 模块有 pprint() 函数(对标 print() 内置函数)、以及itertools模块有  zip_longest() 函数(对标 zip() 内置函数)……

2、内置函数可能不是最快的

由于内置函数的名称并非保留的关键字,以及它处于名称查找的末位顺序,所以内置函数有可能不是最快的。

说Python内置函数并不是万能的原因有哪些

上篇文章展示了 [] 比 list() 快 2~3 倍的事实,其实这还可以推广到 str()、tuple()、set()、dict()  等等内置类型中,都是字面量用法稍稍快于内置类型用法。

对于这些内置类型,当我们调用 xxx() 时,可以简单理解成正在做类的实例化。在面向对象语言中,类先实例化再使用,这是再正常不过的。

但是,这样的做法有时也显得繁琐。为了方便使用,Python 给一些常用的内置类型提供了字面量表示法,也就是""、[]、()、{}  等等,表示字符串、列表、元组和字典等数据类型。

说Python内置函数并不是万能的原因有哪些

文档出处:https://docs.python.org/3/reference/lexical_analysis.html#delimiters

一般而言,所有编程语言都必须有一些字面量表示,但基本都局限在数字类型、字符串、布尔类型以及 null 之类的基础类型。

Python 中还增加了几种数据结构类型的字面量,所以是更为方便的,同时这也解释了为什么内置函数可能不是最快的。

一般而言,同样的完备功能,内置函数总是比我们自定义的函数要快,因为解释器可以做一些底层的优化,例如 len() 内置函数肯定比用户定义的 x.len()  函数快。

有些人据此形成了“内置函数总是更快”的认识误区。

解释器内置函数相对于用户定义函数,前者接近于走后门;而字面量表示法相对于内置函数,前者是在走更快的后门。

也就是说,在有字面量表示法的情况下,某些内置函数/内置类型并不是最快的!

感谢各位的阅读,以上就是“说Python内置函数并不是万能的原因有哪些”的内容了,经过本文的学习后,相信大家对说Python内置函数并不是万能的原因有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 说Python内置函数并不是万能的原因有哪些

本文链接: https://www.lsjlt.com/news/282131.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 说Python内置函数并不是万能的原因有哪些
    这篇文章主要讲解了“说Python内置函数并不是万能的原因有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“说Python内置函数并不是万能的原因有哪些”吧!1、内置函数的查找优先级最低内...
    99+
    2023-06-16
  • python类不能接受参数的原因有哪些
    Python类不能接受参数的原因有以下几点:1. 类是对象的抽象,其本身就是一个对象,而对象是根据类创建的。因此,类本身不需要接受参...
    99+
    2023-09-27
    python
  • win7内存不能为written的原因有哪些
    Win7内存不能被written的原因可能包括:1. 内存故障:内存模块可能存在硬件故障,如损坏、松动或不兼容等,导致无法被写入。2...
    99+
    2023-09-05
    win7
  • Python的内置函数有哪些
    本篇内容介绍了“Python的内置函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!内置函数就是python给你提供的, 拿来直接用的...
    99+
    2023-06-16
  • 有哪些Python内置函数
    这篇文章主要讲解了“有哪些Python内置函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些Python内置函数”吧!和数字相关1. 数据类型 bool : 布尔型(True...
    99+
    2023-06-16
  • python内置函数有哪些
    Python内置函数有很多,常用的包括: print():打印输出 len():返回对象的长度 type():返回对象的类型 in...
    99+
    2024-03-01
    python
  • Python内置函数都有哪些
    本篇文章为大家展示了Python内置函数都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python 内置函数最全汇总1 abs()绝对值或复数的模In [1]: abs(...
    99+
    2023-06-02
  • python内存泄漏的原因有哪些
    Python内存泄漏的原因有以下几个:1. 循环引用:当两个或多个对象相互引用时,如果没有妥善地处理,可能会导致内存泄漏。垃圾回收器...
    99+
    2023-09-15
    python
  • vps不能建站的原因有哪些
    VPS(Virtual Private Server)是一种虚拟化技术,通常用于托管网站和应用程序。虽然VPS可以用来建设网站,但某...
    99+
    2023-08-11
    vps
  • 有哪些好用的Python内置函数
    本篇内容介绍了“有哪些好用的Python内置函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1️⃣set()当您需要对列表进行重复数据删除...
    99+
    2023-06-16
  • 好用的Python内置函数有哪些
    本篇内容介绍了“好用的Python内置函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Lambda 函数Lambda函数用于创建匿名...
    99+
    2023-06-30
  • 常用的Python内置函数有哪些
    这篇文章主要为大家展示了“常用的Python内置函数有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“常用的Python内置函数有哪些”这篇文章吧。内置函数简介Python 解释器自带的函数叫...
    99+
    2023-06-15
  • ajax不能后退的原因有哪些
    这篇文章将为大家详细讲解有关ajax不能后退的原因有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。因为ajax与浏览器的history.back()与forward(...
    99+
    2024-04-02
  • ChatGPT不能访问的原因有哪些
    这篇文章主要介绍“ChatGPT不能访问的原因有哪些”,在日常操作中,相信很多人在ChatGPT不能访问的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ChatGP...
    99+
    2023-02-23
    chatgpt
  • Python里面有哪些内置函数
    这篇文章主要介绍“Python里面有哪些内置函数”,在日常操作中,相信很多人在Python里面有哪些内置函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python里面有哪些内置函数”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • Win10锁屏界面不能设置的原因有哪些
    Win10锁屏界面不能设置的原因有以下几种: 操作系统版本问题:某些版本的Windows 10可能不支持锁屏界面的个性化设置。 ...
    99+
    2024-02-29
    Win10
  • PHP 函数的内置函数有哪些?
    php 提供了一系列内置函数,用于处理字符串、日期、错误和数学计算。这些函数包括(但不限于):字符串处理(strlen、strtoupper、strpos、substr)日期处理(dat...
    99+
    2024-04-10
    函数 php
  • Python 函数默认返回None原因有哪些
    小编给大家分享一下Python 函数默认返回None原因有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python 有一项默认的做法,很多编程语言都没有,所...
    99+
    2023-06-16
  • python内存消耗大的原因有哪些
    Python内存消耗大的原因有以下几个:1. 对象引用计数:Python使用了一种内存管理机制,即对象引用计数。每个对象都有一个引用...
    99+
    2023-08-31
    python
  • Python中好用的内置函数有哪些
    小编给大家分享一下Python中好用的内置函数有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python中冷门但非常好用的内置函数 Counter举例 实战...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作