当前位置:首页 » 《随便一记》 » 正文

Python独具特色的语法规范点梳理

15 人参与  2022年11月07日 11:37  分类 : 《随便一记》  评论

点击全文阅读


在这里插入图片描述

本文主要梳理相对于其他编程语言(如:c/c++、java、go、c#)而言,Python基础语法中,独具特色的知识点。方便其他语言程序员快速了解Python语法。

文章目录

前言一、数据切片二、数据类型2.1 数据类型总览2.2 列表 list2.3 元组 tuplezip 函数 2.4 字典 dictionary2.4.1 update 函数2.4.2 序列解包 三、函数3.1 函数的定义3.2 文档注释3.3 变量的作用域 四、函数式编程4.1 高阶函数4.2 常用的高阶函数4.3 闭包(Closure)4.3.1 闭包的概念4.3.2 闭包的作用 4.4 装饰器(decorator) 五、类5.1 类的构造函数命名为:__init__5.2 类方法用@classmethod修饰5.3 内置方法5.4 python类没有重载(其他语言都有)5.5 获取对象信息函数5.6 查看类的继承层次结构 总结


前言

本文旨在对知识点做一个系统性的梳理,提供一个类似目录的功能。每个知识点的展开均提供网上参考文章。


一、数据切片

切片是Python序列的重要操作之一,适用于列表、元组、字符串、range对象等类型。切片使用2个冒号分隔的3个数字来完成:第一个数字表示切片的开始位置,默认为0,第二个数字表是切片的截止(但不包含)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时,顺便可以省略最后一个冒号。

可以使用切片来截取列表中的任何部分,得到一个新列表,也可以通过切片来修改和删除列表中部分元素,甚至可以通过切片操作为列表对象增加元素。与使用下标访问列表元素不同,切片操作不会因为下标越界而抛出异常,而是简单地在列表尾部截断或者返回一个空列表,代码具有更强的健壮性。

具体语法参考文章:[Python]切片完全指南(语法篇) - 知乎

二、数据类型

2.1 数据类型总览

在这里插入图片描述
Number、Boolean、String、List、Set、Dictionary 和其他编程语言类似。
Tuple(元组) 略有特殊,tuple和list非常类似,但是tuple一旦初始化就不能修改。

2.2 列表 list

列表中,具有python特色的概念就是:range。range 在list构造函数中提供了多种构造形式,目的是简化初始化list的复杂度。
在这里插入图片描述
python 的列表可以通过【推导式】
在这里插入图片描述
参考文章:Python进阶:列表推导式(List Comprehension)

2.3 元组 tuple

元组和列表一样,也是一种序列。不同的是元素是不能修改,也就是说,元组是只读的,不能对元组进行增、删、改。定义元组非常简单,只需要用逗号(, )分割值即可。

zip 函数

在这里插入图片描述
tuple 详细介绍可参考文章:Python的基本数据类型——Tuple

2.4 字典 dictionary

2.4.1 update 函数

在这里插入图片描述
dictionary 详细介绍可参考:Python 字典(Dictionary)

2.4.2 序列解包

序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。
序列解包详细介绍可参考:Python基础知识(序列解包、序列封包)

三、函数

3.1 函数的定义

在这里插入图片描述
参考文档:Python函数(函数定义、函数调用)用法详解

3.2 文档注释

python的文档注释用: “”" 表示。
参考文章:Python中的注释和文档

3.3 变量的作用域

关于作用域的概念,python和其他任何语言都类似。
其中,global 关键字可以再函数内部改变全局变量的值。
global关键字
在这里插入图片描述

四、函数式编程

函数式编程并非python独有。我们知道python的底层是c,而函数式编程是c语言的一个特性。
函数式编程就是一种抽象程度很高的编程范式。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
参考文章:函数式编程

4.1 高阶函数

高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。
参考文章:Python高阶函数

4.2 常用的高阶函数

python 中常用的高阶函数有: map()函数、reduce()函数、filter函数()、sorted() 函数、匿名函数(lambda表达式)。
lambda表达式在很多语言中都广泛使用,并不是python独有的概念。
参考文章1:python中5个常用的内置高阶函数
参考文章2:一文搞懂Python匿名函数

4.3 闭包(Closure)

参考文章: Python闭包(Closure)详解

4.3.1 闭包的概念

在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。

4.3.2 闭包的作用

① 可以读取函数内部的变量,②让这些变量的值始终保持在内存中。

4.4 装饰器(decorator)

闭包的调用其实是挺繁琐的。在python程序中,装饰器就是一种闭包,它可以使闭包的访问方式更简单。
本质上,装饰器(decorator)就是一个返回函数的高阶函数。
在Python中使用装饰器,需要使用一个特殊的符号“@” 来实现。在定义装饰器函数或类时, 使用“@装饰器名称” 的形式将符号“@” 放在函数或类的定义行之前。
装饰器(decorator)通常用来做打印日志。
参考文章:python 装饰器详解

五、类

5.1 类的构造函数命名为:init

5.2 类方法用@classmethod修饰

5.3 内置方法

Python中的类提供了很多双下划线开头和结尾__xxx__的方法,这些方法是Python运行的基础,很多功能背后都是通过调用这些内置方法来实现的。
参考文章:全面了解Python类的内置方法

5.4 python类没有重载(其他语言都有)

Python 参数没有类型约束,无法根据参数类型区分不同的函数,因此python没有重载一说。
具体参考:为什么 Python 不支持函数重载?而其他语言大都支持?

5.5 获取对象信息函数

python中获取对象信息的函数只要有:type()、isinstance()函数、dir()函数。

5.6 查看类的继承层次结构

通过类的方法 mro() 或者类的属性 __mro__可以输出这个类的继承层次结构。
参考:python中的MRO


总结

以上就是我对python语法特色知识点的一个梳理和总结。


点击全文阅读


本文链接:http://zhangshiyu.com/post/47212.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1