python入门走向进阶必知的若干概念整理(一)python解释器魔法方法常见魔法方法__init__:__new__:__class__:__str__:__repr__:其他:装饰器纯函数 python解释器 详情请见:https://www.jianshu.com/p/c70474e1db0a 用的比较多的就是cython,但由于GIL的存在,让其无法像编译型语言那样做真正意义上的多线程。 魔法方法 魔法方法指的是一些双下划线的方法,这些方法往往是解释器使用,可以对应到Python里的一些语法行为。比如“init”、“str”、“bool”、”next“等。(下划线在csdn里的md编辑 Python是世界上最受欢迎的编程语言之一,尤其适合初学者入门。要从初级阶段过渡到中级阶段,理解一些核心概念至关重要。本文将重点介绍Python解释器、魔法方法、装饰器以及纯函数。 **Python解释器** Python解释器是执行Python源代码的程序。常见的Python解释器有CPython(默认官方解释器)、Jython(Java平台上的Python实现)、IronPython(.NET平台上的Python实现)等。其中,CPython是最广泛使用的,但它的全局解释器锁(GIL)限制了在同一时间只能有一个线程执行Python字节码,因此在多线程环境下,CPU密集型任务并不能充分利用多核处理器的优势。Cython是一种优化过的Python方言,它可以更接近于C的速度,但同样受到GIL的影响。 **魔法方法(Magic Methods)** 魔法方法是Python中以两个下划线开头和结尾的特殊方法,它们在特定场景下由Python解释器自动调用。以下是一些常见的魔法方法: 1. `__init__`: 这是初始化方法,当创建类的实例时会自动调用。`__init__`至少需要一个参数`self`,用于指向新创建的对象,通常在这里设置对象的初始状态。 2. `__new__`: 它是真正的构造函数,负责创建新实例。`__new__`至少需要一个参数`cls`,表示要实例化的类。`__new__`必须返回一个实例,通常是`cls`的实例,否则`__init__`不会被调用。 3. `__class__`: 返回对象所属的类。可以用于访问或修改类的变量。 4. `__str__`: 当需要将对象转换为字符串时,例如`print`或`str()`函数,会调用`__str__`。返回的字符串应该易于人类阅读。 5. `__repr__`: 当使用`repr()`函数或直接在交互式环境中打印对象时,会调用`__repr__`。返回的字符串应准确地表示对象的状态,方便开发者识别。 除了这些,还有很多其他的魔法方法,如`__del__`(用于资源释放)、`__getattribute__`(用于拦截属性访问)、`__bases__`(获取父类列表)、`__mro__`(获取方法解析顺序)、`__call__`(使对象可调用)和`__slots__`(用于节省内存)等。 **装饰器** 装饰器是一种高级技巧,可以用来修改或增强函数、方法或类的行为。它们允许你在不改变原代码的情况下,增加额外的功能,如日志、性能测试、事务处理等。装饰器本质上是一个接收函数作为参数并返回新函数的函数。Python的`functools`模块中的`wraps`装饰器可以帮助保持原始函数的元信息。 **纯函数** 纯函数是只依赖于输入参数,且每次给定相同输入时,始终返回相同输出的函数。纯函数不产生副作用,如修改外部状态或引发异常。在函数式编程中,纯函数是重要的概念,因为它们可预测、易于测试和并行执行。 学习这些概念是提升Python技能的关键步骤,它们帮助你更好地理解和控制Python代码的行为,从而编写出更加高效和可靠的程序。通过深入理解这些基础知识,你将能够解决更复杂的问题,并逐步成为一名熟练的Python开发者。
- 粉丝: 7
- 资源: 904
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的电化学分析系统.zip
- win10添加只启动一次的启动项
- jsp ssm 网购商品系统 商品管理 在线购物商品 项目源码 web java【项目源码+数据库脚本+项目说明+软件工具】毕设
- (源码)基于Spring Boot和Vue的后台管理系统.zip
- (源码)基于Qt和ROS的机器人足球裁判系统.zip
- C#校园资源建设平台源码 教育平台源码数据库 SQL2008源码类型 WebForm
- (源码)基于Python和Keras的文本分类系统.zip
- jsp ssm 员工管理系统 企业员工信息 职员管理 项目源码 web java【项目源码+数据库脚本+项目说明+软件工具】毕设
- CAN CANOpen 总线协议 DS402子协议 电机控制方向
- 安慰剂检验Stata代码数据集txt
评论0