updatech1.1: name your boolean.

This commit is contained in:
laixintao 2020-03-03 21:52:50 +08:00
parent 567b71ef15
commit 2ff9708329
No known key found for this signature in database
GPG Key ID: 4E7314AC219D7FE4
1 changed files with 25 additions and 1 deletions

View File

@ -256,7 +256,7 @@ def fancy_func():
所以,请打开 IDE 的智能提示,及时清理掉那些定义了但是没有使用的变量吧。
### 7. 能不定义变量就不定义
### 7. 不要定义没有意义的变量名字
有时候,我们定义变量时的心理活动是这样的:『嗯,这个值未来说不定会修改/二次使用』,让我们先把它定义成变量吧!
@ -283,6 +283,30 @@ def get_best_trip_by_user_id(user_id):
没有必要为了那些可能出现的变动,牺牲代码当前的可读性。如果以后有定义变量的需求,那就以后再加吧。
但有时候,定义额外的变量名可以增加程序的可读性。为布尔值取名字是人们经常会忽略
的做法,比如下面这段代码:
```
# 如果活动还在开放,并且活动剩余名额大于 10为所有性别为女性或者级别大于 3
# 的活跃用户发放 10000 个金币
if activity.is_active and activity.remaining > 10 and \
user.is_active and (user.sex == 'female' or user.level > 3):
user.add_coins(10000)
return
```
假如我们通过取名字来解释这段代码,甚至没有必要添加注释(当然,更好的方法是将这
个逻辑进行封装,见
[2.2封装那些过于复杂的逻辑判断](2-if-else-block-secrets.md#2-封装那些过于复杂的逻辑判断))
```
activity_is_ongoing = activity.is_active and activity.remaining > 10
user_is_eligible = user.is_active and (user.sex == 'female' or user.level > 3)
if activity_is_ongoing and user_is_eligible:
user.add_coins(10000)
return
```
## 结语
碎碎念了一大堆,不知道有多少人能够坚持到最后。变量作为程序语言的重要组成部分,值得我们在定义和使用它时,多花一丁点时间思考一下,那样会让你的代码变得更优秀。