欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python變量與注釋高級(jí)用法

 更新時(shí)間:2022年08月06日 09:55:10   作者:Bruce小鬼  
變量與注釋是表達(dá)作者思想的基礎(chǔ),他們對(duì)代碼質(zhì)量的貢獻(xiàn)母庸質(zhì)疑,這篇文章主要介紹了Python變量與注釋高級(jí)用法,需要的朋友可以參考下

Python變量與注釋高級(jí)用法

1.概述

好的變量和注釋并非為計(jì)算機(jī)而寫,而是為每個(gè)閱讀代碼的人而寫。變量與注釋是表達(dá)作者思想的基礎(chǔ),他們對(duì)代碼質(zhì)量的貢獻(xiàn)母庸質(zhì)疑。

2.變量

2.1.變量解包

1.什么是變量解包

把一個(gè)可迭代對(duì)象的所有成員,一次性的賦值給多個(gè)變量的過程就是變量解包。

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循環(huán)
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的變量類型只是一種提示功能,不提供任何校驗(yàn)功能。
因此傳入的變量類型與校驗(yàn)類型不一致也不會(huì)報(bào)錯(cuò)。

變量注明類型語法非常簡(jiǎn)單,在變量名稱后面用冒號(hào)分隔表名類型即可。

2.變量注明類型示例

# list表示參數(shù)為列表類型,int表示里面的成員是整形
def remove_invalid(item: list[int]):
    print(item)
# 傳入符合變量類型參數(shù)
remove_invalid([1, 2, 3])
# 傳入不符合變量類型參數(shù),不影響函數(shù)執(zhí)行結(jié)果。
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對(duì)象為函數(shù)返回值標(biāo)注具體類型
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原則
  • 描述性要強(qiáng)
  • 長(zhǎng)度盡量短
  • 變量注明類型
  • 超短命名

1.遵循PEP8原則

PEP8原名《Python Enhacement Proposal #8》譯為《8 號(hào) Python 增強(qiáng)規(guī)范》為代碼編寫風(fēng)格提供了指南,變量命名部分規(guī)范如下。

  • 普通變量,使用蛇形命名法,比如max_value
  • 常量,采用全部大寫字母,使用下劃線連接,比如 MAX_VALUE
  • 僅內(nèi)部使用變量,在變量前增加下劃線前綴,比如 _local_var
  • 變量名稱與python關(guān)鍵字沖突時(shí),在變量末尾追加下劃線,比如 class_

2.描述性要強(qiáng)

寫作過程中一項(xiàng)重要的工作就是為句子斟酌恰當(dāng)?shù)脑~語,不同的詞語描述性的強(qiáng)弱是不同的。比如”冬天傲骨的梅花“ 就比 ”花“ 描述性要強(qiáng)。為變量命名和詞語一樣,同樣有描述性強(qiáng)弱之分。
下面是描述性強(qiáng)弱不同的變量,對(duì)比可以感受到描述性強(qiáng)的變量名稱使代碼更易讀。

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

# 描述性強(qiáng)的變量名稱:從用戶輸入?yún)?shù)中解析出用戶名稱,并剔除參數(shù)中的空格。
username = extract_username(input_string.strip())

3.長(zhǎng)度盡量短

假如一個(gè)特別長(zhǎng)的重復(fù)出現(xiàn),讀者不會(huì)覺得它精確,反而是啰嗦難讀。在保證描述性清晰前提下,盡量讓名字簡(jiǎn)短易讀,通??刂圃?個(gè)單詞內(nèi)。

4.變量注明類型

雖然python的變量不需要聲明類型,但是為了提升可讀性,我們可以為變量注明類型。
除了為變量注明類型外,還有約定俗稱的變量名稱與類型建立匹配關(guān)系,下面是一些變量名稱和類型匹配的例子。

變量名含義說明
is_superuser是否是超級(jí)用戶is 表示是或不是
has_errors有沒有錯(cuò)hans 表示有或沒有
allow_empty是否允許空值allow表示是否允許

5.超短命令

在變量命名中有一類名稱比較特別,只有一兩個(gè)字母,通常他們分為兩類,一類是大家約定俗稱的短名字,另一類是起別名。

約定俗稱常用名稱

  • 數(shù)組索引三劍客 i、j、k
  • 某個(gè)整數(shù) n
  • 某個(gè)字符串 s
  • 某個(gè)異常 e
  • 文件對(duì)象 fp

長(zhǎng)名稱起別名

is_not_normal as l

3.注釋

注釋不會(huì)影響代碼的行為,它會(huì)影響代碼的可讀性。

3.1.注釋類型

python的注釋分為兩種,一種是代碼內(nèi)注釋,一種是函數(shù)、類的注釋也稱為接口注釋。

行內(nèi)注釋

# 使用strip()去掉空格的好處:
# 1.數(shù)據(jù)庫保存數(shù)據(jù)時(shí)占用空間更小
# 2.不必因?yàn)橛脩舳啻蛄丝崭穸笥脩糁匦螺斎搿?

username = extract_username(input_string.strip())

接口注釋

class Person:
	# 使用三個(gè)單引號(hào)或三個(gè)雙引號(hào)就是接口注釋。
	'''人
	: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.錯(cuò)誤使用注釋案例

1.用注釋屏蔽代碼

在編程中會(huì)用注釋屏蔽代碼,如果這些代碼不需要了可以直接刪掉,如果需要用到這些代碼可以從Git倉庫中找到。臨時(shí)注釋掉的大段代碼,對(duì)于閱讀代碼的人來說是一種干擾,沒有任何意義。

2.用注釋復(fù)述代碼

# 調(diào)用strip()去掉空格
input_string = input_string.strip()

上面這樣的注釋完全是冗余的,因?yàn)樽x者從代碼本身就能讀到注釋里的信息。好的注釋應(yīng)該是這樣

# 如果將帶有空格的參數(shù)傳遞到后端處理,可能會(huì)造成服務(wù)奔潰
# 因此使用strip()去掉收尾空格
input_string = input_string.strip()

注釋作為代碼之外的說明性文字,應(yīng)該盡量提供那些讀者無法從代碼里讀出的信息,描述代碼為什么要這么做,而不是簡(jiǎn)單復(fù)述代碼本身。

除了為什么的解釋性注釋外,還有一種注釋也很常見:指引性注釋
這種注釋不復(fù)述代碼,而是簡(jiǎn)明扼要概括代碼功能,起到”代碼導(dǎo)讀“作用。
指引性注釋并不提供代碼里讀不到東西——假如沒有注釋,耐心讀完所有代碼也能知道代碼做了什么。指引性注釋就是降低代碼認(rèn)知的成本,讓我們更容易理解代碼的意圖。

指引性注釋示例

# 初始化訪問服務(wù)的client對(duì)象
token = token_service.get_token()
service_client = ServiceClient(token = token)
service_client.ready()

3.弄錯(cuò)接口注釋的受眾

到此這篇關(guān)于Python變量與注釋高級(jí)用法的文章就介紹到這了,更多相關(guān)Python變量與注釋內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python常用數(shù)據(jù)結(jié)構(gòu)集合詳解

    python常用數(shù)據(jù)結(jié)構(gòu)集合詳解

    這篇文章主要介紹了python常用數(shù)據(jù)結(jié)構(gòu)集合詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • 基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型

    基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型

    這篇文章主要介紹了基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python字符串常用方法

    python字符串常用方法

    這篇文章主要介紹了python字符串常用方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • 淺談Python反射 & 單例模式

    淺談Python反射 & 單例模式

    這篇文章主要介紹了Python反射 & 單例模式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python調(diào)用百度AI實(shí)現(xiàn)人像分割詳解

    Python調(diào)用百度AI實(shí)現(xiàn)人像分割詳解

    本文主要介紹了如何通過Python調(diào)用百度AI從而實(shí)現(xiàn)人像的分割與合成,文中的示例代碼對(duì)我們的工作或?qū)W習(xí)有一定的幫助,需要的朋友可以參考一下
    2021-12-12
  • python sort、sorted高級(jí)排序技巧

    python sort、sorted高級(jí)排序技巧

    這篇文章主要介紹了python sort、sorted高級(jí)排序技巧,本文講解了基礎(chǔ)排序、升序和降序、排序的穩(wěn)定性和復(fù)雜排序、cmp函數(shù)排序法等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • keras 讀取多標(biāo)簽圖像數(shù)據(jù)方式

    keras 讀取多標(biāo)簽圖像數(shù)據(jù)方式

    這篇文章主要介紹了keras 讀取多標(biāo)簽圖像數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python字典的常用方法總結(jié)

    python字典的常用方法總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于python字典的常用方法以及相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。
    2019-07-07
  • 通過Python掃描代碼關(guān)鍵字并進(jìn)行預(yù)警的實(shí)現(xiàn)方法

    通過Python掃描代碼關(guān)鍵字并進(jìn)行預(yù)警的實(shí)現(xiàn)方法

    這篇文章主要介紹了通過Python掃描代碼關(guān)鍵字并進(jìn)行預(yù)警的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 詳解python里使用正則表達(dá)式的全匹配功能

    詳解python里使用正則表達(dá)式的全匹配功能

    這篇文章主要介紹了詳解python里使用正則表達(dá)式的全匹配功能的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10

最新評(píng)論