網站首頁 編程語言 正文
1.變量命名
1)命名的規范性
變量名可以包括字母、數字、下劃線,但是數字不能做為開頭。
系統關鍵字不能做變量名使用
除了下劃線之個,其它符號不能做為變量名使用 !
Python的變量名是除分大小寫的
2)編程語言常用駝峰命名法
-
大駝峰:每一個單詞的首字母都大寫
FirstName LastName
-
小駝峰:第一個單詞以小寫字母開始,后續單詞的首字母大寫
firstName lastName
但是在python中一般使用小駝峰加下劃線的方式:
has_error
is_person
2. 變量命名的描述性
在接受范圍內,變量名所描述的內容越精準越好。
- BAD: day, host, cards, temp
- GOOD: day_of_week, hosts_to_reboot, expired_cards
變量名能讓人猜出類型。
例如: Bool 類型
is_user
: 是否是用戶
例如: int/float 類型
port
:端口號age
:年齡
這些很直觀的能讓人猜出類型。
注意: 不要使用復數來表示一個 int 類型變量,比如 apples,最好用 number_of_apples來替代。
3.變量名盡量短,但是不要太短
一個好的變量名,長度應該控制在兩到三個單詞左右
例如:person_index
同一段代碼內不要使用過于相似的變量名,比如同時出現 users
、users1
、 user3
。
不要使用帶否定含義的變量名,用is_special
代替is_not_normal
。
4.合理使用變量
同一個變量名指代的變量類型,也需要保持一致性。
在一個函數中,一個變量名叫做 photo
, 那么在其他地方就不要改成image
。
5. 變量定義盡量靠近使用
剛開始學習編程時,我們習慣把定義的變量放在開頭,或一些函數最前面。
如下:
def get_name(): ?? ?students = [] ?? ?teachers = []
這樣的方式雖然看起來很簡潔,但是對代碼可讀性沒有幫助,更好的做法是,讓變量定義盡量靠近使用。
6. 合理使用namedtuple/dict
Python中的函數可以返回多個值,如果某一天我們想讓函數再多返回一個值怎么辦呢?
#之前 def get_name(): ?? ?return student, teacher ?? ? #現在 def get_name(): ?? ?return student, teacher, parent
namedtuple/dict 此時可以派上用場
#1. 使用dict def get_name(): ?? ?return { ?? ?'student': student,? ?? ?'teacher':teacher,? ?? ?'parent' :parent ?? ?} names_dict = get_name() # 2. 使用 namedtuple from collections import namedtuple Names = namedtuple("Names", ['student', 'teacher', 'parent']) def get_name(): ?? ?return Names( ?? ?student = student, ?? ?teacher = teacher, ?? ?parent = parent ?? ?) names = get_name()
但是這樣不能像之前一樣,每一次解包多變量接受函數返回值。
6. 控制單個函數內的變量數量
當某一函數過長時,或者包含太多變量時,請及時把它拆分成多個小函數。
7. 刪除掉沒用的變量
在一個函數中,如果某一個定義的變量沒有被用到,請及時刪除它。
8. 定義臨時變量提高可讀性
if student.is_active and (student.sex == 'female'): ? ? student.add_tolist() ? ? return #把上面的例子變成如下 student_is_eligible = student.is_active and (student.sex == 'female') if student_is_eligible: ? ? student.add_tolist() ? ? return
需要合理運用臨時定義對象,把不必要的東西賦值成臨時變量反而會讓代碼顯得啰嗦!
9. The Zen of Python
最后分享一下 Zen of Python 準則。
漂亮總比難看好。
顯性比隱性好。
簡單比復雜好。
復雜比復雜好。
平的比嵌套的好。
疏比密好。
可讀性。
特殊情況并不特別到足以打破規則。
盡管實用性勝過純潔。
錯誤不應該悄無聲息地過去。
除非顯式地沉默。
面對模棱兩可,拒絕猜測的誘惑。
應該有一種——最好只有一種——明顯的方法來做這件事。
除非你是荷蘭人,否則這種方式一開始可能并不明顯。
現在做總比不做好。
雖然永遠不做總是比現在好。
如果實現很難解釋,那就不是一個好主意。
如果實現易于解釋,那么它可能是個好主意。
原文鏈接:https://blog.csdn.net/weixin_46442179/article/details/123442548
相關推薦
- 2022-06-02 如何利用C#正則表達式判斷是否是有效的文件及文件夾路徑_C#教程
- 2022-08-20 C#?Chart折線圖使用鼠標滾輪放大、縮小和平移曲線方式_C#教程
- 2022-08-06 winform把Office轉成PDF文件_C#教程
- 2023-09-12 Nginx安裝與常見命令
- 2023-07-28 async await 寫法
- 2022-10-18 CommonLisp中解析命令行參數示例_其它綜合
- 2022-05-31 關于k8s?使用?Service?控制器對外暴露服務的問題_云其它
- 2022-04-16 Django中外鍵ForeignKey介紹使用_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支