《Python開發(fā)技術(shù)詳解》試讀:2.2.1命名規(guī)則2.2Python的編碼規(guī)則Python語言有自己獨(dú)特的編碼規(guī)則,包括命名規(guī)則、代碼書寫規(guī)則等。本節(jié)將詳細(xì)介紹Python中常用的規(guī)則,并解釋這些規(guī)則的原理和由來。2.2.1命名規(guī)則Python語言有一套自己的命名規(guī)則" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python命名規(guī)范

系統(tǒng) 1790 0

<script type="text/javascript"></script><script type="text/javascript"></script> ?

<script></script>

《Python開發(fā)技術(shù)詳解》試讀:2.2.1 命名規(guī)則

                

??? 2.2? Python的編碼規(guī)則

??? Python語言有自己獨(dú)特的編碼規(guī)則,包括命名規(guī)則、代碼書寫規(guī)則等。本節(jié)將詳細(xì)介紹Python中常用的規(guī)則,并解釋這些規(guī)則的原理和由來。

??? 2.2.1? 命名規(guī)則

??? Python語言有一套自己的命名規(guī)則,用戶也可以借鑒Java語言的命名規(guī)則以形成自己編碼的規(guī)則。命名規(guī)則并不是規(guī)定,只是一種習(xí)慣用法。變量名的首字符必須是字母或下劃線,首字符之外的字符可以由字母、數(shù)字或下劃線組成,并且不能使用Python的保留字。下面介紹幾種常見的規(guī)則。

??? 1.變量名、包名、模塊名

??? 變量名通常由字母和下劃線組成,包名、模塊名通常用小寫字母,如【例2-1】所示。

??? 【例2-1】演示變量名、包名、模塊名的規(guī)范寫法。

??? # 變量、模塊名的命名規(guī)則

??? # Filename: ruleModule.py

??? _rule = "rule information"

??? 第1行代碼是程序代碼的注釋,關(guān)于Python語言的注釋請(qǐng)參見2.2.5節(jié)。

??? 第2行代碼也是程序的注釋,用于聲明模塊的名稱,模塊名用小寫字母。也可以不指定模塊名,以py后綴的文件就是一個(gè)模塊。模塊名就是文件名。

??? 第4行代碼定義了一個(gè)全局變量_rule。

??? 2.類名、對(duì)象名

??? 類名首字母用大寫,其他字母采用小寫。對(duì)象名用小寫字母。類的屬性和方法名以對(duì)象作為前綴,對(duì)象通過操作符“.”訪問屬性和方法。類的私有變量、私有方法以兩個(gè)下劃線作為前綴。如【例2-2】所示。

??? 【例2-2】演示類的定義和實(shí)例化的規(guī)范寫法。

??? class Student:# 類名用大寫字母

??? __name = ""# 私有實(shí)例變量前必須有兩個(gè)下劃線

??? def __init__(self, name):

??? self.__name = name# self相當(dāng)于Java中的this

??? def getName(self):# 方法名首字母用小寫,其后每個(gè)單詞的首字母用大寫

??? return self.__name

??? if __name__ == "__main__":

??? student = Student("borphi")# 對(duì)象名用小寫字母

??? printstudent.getName()

??? 第1行代碼定義了一個(gè)名為Student的類,類名首字母大寫。

??? 第2行代碼定義了一個(gè)私有的實(shí)例變量,變量名前有兩個(gè)下劃線。

??? 第4行代碼使用self前綴說明__name變量屬于Student類。

??? 第5行代碼定義了一個(gè)公有的方法,方法名首字母小寫,其后的單詞“Name”首字母大寫。函數(shù)的命名規(guī)則與此相同。

??? 第9行代碼創(chuàng)建了一個(gè)student對(duì)象,對(duì)象名小寫。

??? 說明關(guān)于面向?qū)ο蟮木幊讨R(shí)將在第8章詳細(xì)介紹,讀者此時(shí)只要知道類、對(duì)象、屬性以及方法的書寫方式即可。

??? 3.函數(shù)名

??? 函數(shù)名通常采用小寫,并用下劃線或單詞首字母大寫來增加名稱的可讀性,導(dǎo)入的函數(shù)以模塊名作為前綴。為了演示導(dǎo)入函數(shù)前綴的寫法,下面使用了生成隨機(jī)數(shù)的模塊random。該模塊有一個(gè)函數(shù)randrange()。該函數(shù)可以根據(jù)給定的數(shù)字范圍生成隨機(jī)數(shù)。randrange()的聲明如下所示:

??? randrange(start, stop\[, step\])

??? 參數(shù)start表示生成隨機(jī)數(shù)所在范圍的開始數(shù)字。

??? 參數(shù)stop表示生成隨機(jī)數(shù)所在范圍的結(jié)束數(shù)字,但不包括數(shù)字stop。

??? 參數(shù)step表示從start開始往后的步數(shù)。生成的隨機(jī)數(shù)在\[start,stop - 1\]的范圍內(nèi),取值等于start + step。

??? 例如:

??? randrange(1, 9, 2)

??? 隨機(jī)數(shù)的范圍在1、3、5、7之間取得。

??? 【例2-3】演示函數(shù)的規(guī)范寫法,其中定義了一個(gè)函數(shù)compareNum(),該函數(shù)用于比較兩個(gè)數(shù)字的大小,并返回對(duì)應(yīng)的結(jié)果。

??? # 函數(shù)中的命名規(guī)則

??? import random

??? def compareNum(num1, num2):

??? if(num1 > num2):

??? return 1

??? elif(num1 == num2):

??? return 0

??? else:

??? return -1

??? num1 = random.randrange(1, 9)

??? num2 = random.randrange(1, 9)

??? print "num1 =", num1

??? print "num2 =", num2

??? print compareNum(num1, num2)

??? 第2行代碼導(dǎo)入了random模塊。

??? 第4行代碼定義了一個(gè)函數(shù)compareNum(),參數(shù)num1、num2為待比較的兩個(gè)變量。

??? 第5行到第10行代碼比較兩個(gè)數(shù)的大小,根據(jù)比較結(jié)果返回不同的結(jié)果。

??? 第11行、第12行代碼調(diào)用random模塊的randrange()返回兩個(gè)隨機(jī)數(shù)。

??? 第13行、第14行代碼輸出隨機(jī)數(shù),不同的機(jī)器、不同的執(zhí)行時(shí)間得到的隨機(jī)數(shù)均不相同。

??? 第15行代碼調(diào)用compareNum(),并把產(chǎn)生的兩個(gè)隨機(jī)數(shù)作為參數(shù)傳入。

??? 良好的命名習(xí)慣可以提高編程效率,使代碼閱讀者在不了解文檔的情況下,也能理解代碼的內(nèi)容。

??? 下面以變量的命名為例,說明如何定義有母實(shí)際含義的名稱。許多程序員對(duì)變量的命名帶有隨意性,如使用i、j、k等單個(gè)字母。代碼閱讀者并不知道這些變量的實(shí)際含義,需要閱讀文檔或仔細(xì)查看源代碼才能了解其含義。

??? 【例2-4】演示變量命名不規(guī)范的寫法。

??? # 不規(guī)范的變量命名寫法

??? sum = 0

??? i = 2000

??? j = 1200

??? sum = i + 12 * j

??? 這段代碼定義了一個(gè)求和變量sum,以及兩個(gè)變量i、j。如果只看代碼片段,并不知道該運(yùn)算的含義是什么,需要通讀整個(gè)函數(shù)或功能模塊才能理解此處各個(gè)變量的含義。

??? 【例2-5】演示符合命名規(guī)則的寫法。

??? # 規(guī)范的變量命名寫法

??? sumPay = 0

??? bonusOfYear = 2000

??? monthPay = 1200

??? sumPay = bonusOfYear + 12 * monthPay

??? bonusOfYear表示年終獎(jiǎng)金、monthPay表示月薪,因此sumPay表示全年的薪水。使變量的名字有實(shí)際含義可以節(jié)省閱讀程序的時(shí)間,能更快地理解程序的含義。

??? 注意變量的命名應(yīng)盡可能的表達(dá)此變量的作用,盡量避免使用縮寫,以便使任何人都能理解變量名的含義。不要過多的擔(dān)心變量名的長度,長的變量名往往能更表達(dá)清楚該變量的作用。

??? 以上討論的命名方式同樣適用于模塊名、類名、方法名、屬性名等。遵守命名規(guī)則會(huì)帶來很多好處。統(tǒng)一的命名規(guī)則便于程序開發(fā)團(tuán)隊(duì)合作開發(fā)同一個(gè)項(xiàng)目;便于統(tǒng)一代碼的風(fēng)格,理解不同程序員編寫的代碼;命名規(guī)范的變量名可以使程序代碼更容易被理解;避免項(xiàng)目中隨意命名變量的情況,促進(jìn)程序員之間的交流。規(guī)則并不是絕對(duì)的,統(tǒng)一規(guī)則、表達(dá)清楚名稱的含義才是制定規(guī)則的目的。

<script id="db-templ-remarks" type="text/x-jquery-tmpl"></script><script></script>

> Python開發(fā)技術(shù)詳解

Python開發(fā)技術(shù)詳解
作者: 周偉, 宗杰
isbn: 7111270150
書名: Python開發(fā)技術(shù)詳解
頁數(shù): 532
定價(jià): 69.00元
出版社: 機(jī)械工業(yè)出版社
裝幀: 平裝
出版年: 2009

<script type="text/javascript"></script><script type="text/javascript"></script>

<!-- baggins1-->

Python命名規(guī)范


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 青浦区| 汤阴县| 新郑市| 泗洪县| 宁津县| 冕宁县| 伊春市| 临高县| 汤阴县| 松溪县| 开鲁县| 五家渠市| 沛县| 广汉市| 柞水县| 洛南县| 铁岭县| 隆回县| 张家口市| 甘德县| 灵宝市| 九台市| 闽清县| 禄丰县| 右玉县| 达州市| 达孜县| 晋中市| 灌南县| 辉县市| 内丘县| 江达县| 滦平县| 连山| 宁夏| 东丰县| 洛阳市| 卫辉市| 墨脱县| 朝阳区| 运城市|