iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解Python变量与注释高级用法
  • 665
分享到

详解Python变量与注释高级用法

2024-04-02 19:04:59 665人浏览 薄情痞子

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

摘要

目录python变量与注释高级用法1.概述2.变量2.1.变量解包2.2.给变量注明类型2.3.变量命名原则3.注释3.1.注释类型3.2.错误使用注释案例Python变量与注释高级

Python变量与注释高级用法

1.概述

好的变量和注释并非为计算机而写,而是为每个阅读代码的人而写。变量与注释是表达作者思想的基础,他们对代码质量的贡献母庸质疑。

2.变量

2.1.变量解包

1.什么是变量解包

把一个可迭代对象的所有成员,一次性的赋值给多个变量的过程就是变量解包。

2.变量解包语法

# 变量解包
username = ['zhangsan', '18']
name, age = username
print('name:{}, age:{} '.fORMat(name, age))

# 嵌套类型变量解包
username = [1, ['zhangsan', 18]]
number, (name, age) = username
print('number:{}, name:{}, age:{}'.format(number, name, age))

# 匹配模式解包
data = ['zhangsan', 'banana', 'apple', 'orange', 18]
name, *fruits, score = data
print('name:{}, fruits:{}, score:{}'.format(name, fruits, score))

# 切片解包
data = ['zhangsan', 'banana', 'apple', 'orange', 18]
name, fruits, score = data[0], data[1:-1], data[-1]
print('name:{}, fruits:{}, score:{}'.format(name, fruits, score))

# 变量解包用到for循环
for name, age in [('zhangsan', 15), ('lisi', 18)]:
    print('name:{}, age:{}'.format(name, age))

# 单下划线变量名
username = ['zhangsan', 19]
name, _ = username
print(name, _)

2.2.给变量注明类型

1.变量注明类型介绍

python给变量注明类型,与java变量类型不同,python的变量类型只是一种提示功能,不提供任何校验功能。
因此传入的变量类型与校验类型不一致也不会报错。

变量注明类型语法非常简单,在变量名称后面用冒号分隔表名类型即可。

2.变量注明类型示例

# list表示参数为列表类型,int表示里面的成员是整形
def remove_invalid(item: list[int]):
    print(item)
# 传入符合变量类型参数
remove_invalid([1, 2, 3])
# 传入不符合变量类型参数,不影响函数执行结果。
remove_invalid(1)

# 类型注解使用demo
class Duck:
    def __init__(self, color:str):
        self.color = color
    # 为quack方法注明返回值类型为None
    def quack(self) -> None:
        print(f"Hi, I'm a {self.color} duck")

# -> List[Duck]:用typing模块的List对象为函数返回值标注具体类型
def create_random_ducks(number:int) -> List[Duck]:
    # 为变量加上类型声明
    ducks: List[Duck] = []

    for _ in number:
        color = random.choice(['yellow', 'white', 'gray'])
        ducks.append(Duck(color=color))
    return ducks
ducks = create_random_ducks((1,2,3))
for duck in ducks:
    duck.quack()

2.3.变量命名原则

给变量起名主要有两种流派:一是通过大小写界定单词的驼峰命名,例如Java语言。二是通过下划线连接的蛇形命名,例如python语言。

  • 遵循PEP8原则
  • 描述性要强
  • 长度尽量短
  • 变量注明类型
  • 超短命名

1.遵循PEP8原则

PEP8原名《Python Enhacement Proposal #8》译为《8 号 Python 增强规范》为代码编写风格提供了指南,变量命名部分规范如下。

  • 普通变量,使用蛇形命名法,比如max_value
  • 常量,采用全部大写字母,使用下划线连接,比如 MAX_VALUE
  • 仅内部使用变量,在变量前增加下划线前缀,比如 _local_var
  • 变量名称与python关键字冲突时,在变量末尾追加下划线,比如 class_

2.描述性要强

写作过程中一项重要的工作就是为句子斟酌恰当的词语,不同的词语描述性的强弱是不同的。比如”冬天傲骨的梅花“ 就比 ”花“ 描述性要强。为变量命名和词语一样,同样有描述性强弱之分。
下面是描述性强弱不同的变量,对比可以感受到描述性强的变量名称使代码更易读。

# 描述性弱的变量名称:看不出它在描述什么
vlaue = process(s.strip())

# 描述性强的变量名称:从用户输入参数中解析出用户名称,并剔除参数中的空格。
username = extract_username(input_string.strip())

3.长度尽量短

假如一个特别长的重复出现,读者不会觉得它精确,反而是啰嗦难读。在保证描述性清晰前提下,尽量让名字简短易读,通常控制在4个单词内。

4.变量注明类型

虽然python的变量不需要声明类型,但是为了提升可读性,我们可以为变量注明类型。
除了为变量注明类型外,还有约定俗称的变量名称与类型建立匹配关系,下面是一些变量名称和类型匹配的例子。

变量名含义说明
is_superuser是否是超级用户is 表示是或不是
has_errors有没有错hans 表示有或没有
allow_empty是否允许空值allow表示是否允许

5.超短命令

在变量命名中有一类名称比较特别,只有一两个字母,通常他们分为两类,一类是大家约定俗称的短名字,另一类是起别名。

约定俗称常用名称

长名称起别名

is_not_normal as l

3.注释

注释不会影响代码的行为,它会影响代码的可读性。

3.1.注释类型

python的注释分为两种,一种是代码内注释,一种是函数、类的注释也称为接口注释。

行内注释

# 使用strip()去掉空格的好处:
# 1.数据库保存数据时占用空间更小
# 2.不必因为用户多打了空格而要求用户重新输入。

username = extract_username(input_string.strip())

接口注释

class Person:
	# 使用三个单引号或三个双引号就是接口注释。
	'''人
	:param name: 姓名
	: param age: 年龄
	: param favrite_color: 最喜欢的颜色
	'''
	def __init__(self, name, age, favrite_color):
		self.name = name
		self.age = age
		self.favrite_color = color

3.2.错误使用注释案例

1.用注释屏蔽代码

编程中会用注释屏蔽代码,如果这些代码不需要了可以直接删掉,如果需要用到这些代码可以从git仓库中找到。临时注释掉的大段代码,对于阅读代码的人来说是一种干扰,没有任何意义。

2.用注释复述代码

# 调用strip()去掉空格
input_string = input_string.strip()

上面这样的注释完全是冗余的,因为读者从代码本身就能读到注释里的信息。好的注释应该是这样

# 如果将带有空格的参数传递到后端处理,可能会造成服务奔溃
# 因此使用strip()去掉收尾空格
input_string = input_string.strip()

注释作为代码之外的说明性文字,应该尽量提供那些读者无法从代码里读出的信息,描述代码为什么要这么做,而不是简单复述代码本身。

除了为什么的解释性注释外,还有一种注释也很常见:指引性注释
这种注释不复述代码,而是简明扼要概括代码功能,起到”代码导读“作用。
指引性注释并不提供代码里读不到东西——假如没有注释,耐心读完所有代码也能知道代码做了什么。指引性注释就是降低代码认知的成本,让我们更容易理解代码的意图。

指引性注释示例

# 初始化访问服务的client对象
token = token_service.get_token()
service_client = ServiceClient(token = token)
service_client.ready()

3.弄错接口注释的受众

到此这篇关于Python变量与注释高级用法的文章就介绍到这了,更多相关Python变量与注释内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解Python变量与注释高级用法

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

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

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

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

下载Word文档
猜你喜欢
  • 详解Python变量与注释高级用法
    目录Python变量与注释高级用法1.概述2.变量2.1.变量解包2.2.给变量注明类型2.3.变量命名原则3.注释3.1.注释类型3.2.错误使用注释案例Python变量与注释高级...
    99+
    2022-11-11
  • 详解shell 变量的高级用法示例
    变量删除和替换 案例:从头开始匹配,将符合最短的数据删除 (#) variable_1="I love you, Do you love me" echo $variable_1 variable_2=${vari...
    99+
    2022-06-04
    shell 变量
  • Shell编程之变量的高级用法详解
    变量替换 语法 说明 ${变量名#匹配规则} 从变量开...
    99+
    2022-06-04
    Shell 变量
  • Python高级变量之字典和字符串详解
    目录1、字典的定义字典和列表的区别:字典的基本使用2、循环遍历3、字符串的定义4、字符串的常用操作字符串 查找和替换字符串 文本对齐演练去除空白字符字符串拆分和连接5、字符串的切片总...
    99+
    2022-11-12
  • 详解python数值与字符串高级用法
    python数值与字符串高级用法 1.概述 这篇是一篇没有尽头的文章,每当过段时间,再次打开就会看到不一样的内容,有新东西在更新啊。是啊,之所以取名为高级用法,就是因为它是连载的,一...
    99+
    2022-11-11
  • Python脚本,标识符,变量使用,脚本语句,注释,模块引用详解
    目录一、python中的标志符:二、Python中变量使用:1、字符串变量2、浮点数变量3、整数变量和bool变量三、Python中的语句四、Python中的注释五、Python中的...
    99+
    2022-11-13
  • Python __all__变量用法示例详解
    目录Python模块__all__变量        事实上,当我们向文件导入某个模块时,导入的是该模...
    99+
    2023-05-14
    Python __all__变量 Python __all__
  • 详解python的数字类型变量与其方法
    前言 python数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。下面话不多说,来看看详细的介绍吧。 以下实例在变量赋值时 Number 对象将被创建: v...
    99+
    2022-06-04
    变量 详解 类型
  • Python基础语法之变量与数据类型详解
    目录一. 输出函数print1.1 可以输出数字1.2 可以输出字符串1.3 可以输出表达式1.4 可以输出至文件中二. 变量与数据类型2.1 整型2.2 浮点型2.3 字符串型2....
    99+
    2022-11-11
  • python变量作用域与列表入门详解
    变量作用域 变量由作用范围限制 分类:按照作用域分类 全局(global):在函数外部定义 局部(local):在函数内部定义 变量的作用范围 全局变量:在整个全局...
    99+
    2022-11-11
  • PHP Session 变量的使用方法详解与实例代码
    当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以...
    99+
    2022-11-15
    PHP Session
  • Python中第三方库Requests库的高级用法详解
    一、Requests库的安装 利用 pip 安装,如果你安装了pip包(一款Python包管理工具,不知道可以百度哟),或者集成环境,比如Python(x,y)或者anaconda的话,就可以直接使用pi...
    99+
    2022-06-04
    第三方 详解 高级
  • 支持向量机之SVR 用法与参数详解 python
    概念: 针对二分类问题,寻求最优超平面 SVM: 使到超平面最近的样本点的“距离”最大 SVR: 使到超平面最远的样本点的“距离”最小。 SVR回归的优势:容忍偏离 传统的回归方法当且仅当回归f(x)完全等于y时才认为是预测正确,需计...
    99+
    2023-08-31
    python
  • Python中的迭代器与生成器高级用法解析
    迭代器 迭代器是依附于迭代协议的对象——基本意味它有一个next方法(method),当调用时,返回序列中的下一个项目。当无项目可返回时,引发(raise)StopIteration异常。 迭代对象允许一次...
    99+
    2022-06-04
    生成器 高级 迭代
  • Python中闭包和自由变量的使用方法与注意事项是什么
    这篇文章主要为大家展示了“Python中闭包和自由变量的使用方法与注意事项是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中闭包和自由变量的使用方法与注意事项是什么”这篇文章吧。...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作