真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

改善Python程序的建議

改善Python程序的建議?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司主營嘉定網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),嘉定h5小程序開發(fā)搭建,嘉定網(wǎng)站營銷推廣歡迎嘉定等地區(qū)企業(yè)咨詢

建議1:理解Pythonic概念

·Pythonic定義

·pythonic:充分體現(xiàn)Python自身特色的代碼風(fēng)格。

·代碼風(fēng)格

    ·交換兩個數(shù)字

利用Python的packaging/unpackaging機(jī)制。

a, b = b, a

    ·遍歷一個容器

for i in alist:
  do_sth_with(i)

    ·安全地關(guān)閉文件描述符

with open(path, 'r') as f:
  do_sth_with(f)

寫出來的代碼具有Python味,而不是看著像C語言代碼。

·標(biāo)準(zhǔn)庫

字符串格式化一般這樣寫:

print("Hello %s!" % ('Tom',))

但是真正具有Pythonic的代碼是這樣的:

print("{great} from {language}.".format(greet = 'Hello, World', language = 'Python'))

·Pythonic的庫或框架

Flask:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
  return "Hello, World!"
if __name__ == "__main__":
  app.run()

建議2:編寫Pythonic代碼

·避免劣化代碼

    ·避免只用大小寫來區(qū)分不同的對象。

    ·避免使用容易引起混淆的名稱。

    ·不要害怕過長的變量名稱。

·深入認(rèn)識Python有助于編寫Pythonic代碼

    ·掌握Python提供給我們的語言特性和庫特性(Language Reference和Library Reference)。

    ·深入學(xué)習(xí)業(yè)界公認(rèn)的比較Pythonic的代碼,比如Flask、gevent和requests等。

    ·pep-8——Python編碼風(fēng)格指南。(其它還有:Pychecker、Pylint、Pyflakes等)

建議3:理解Python與C語言的不同之處(切忌用C語言的思維和風(fēng)格來編寫Python代碼)

·“縮進(jìn)”與“{}”

python使用嚴(yán)格的代碼縮進(jìn)方式分隔代碼塊。(unexpected indent錯誤)

·“與”

沒有區(qū)別,注意轉(zhuǎn)義。

·三元操作符“?:”

三元操作符的語法形式為:C?X:Y,表示當(dāng)條件C為True時,取值X,C為False時,取值Y。在Python中的等價形式為X if C else Y。

·switch…case

Python沒有像C語言的switch…case分支語句。

通過if…elif…else實現(xiàn):

if n == 0:
  do_sth
elif n > 0:
  do_sth
else:
  do_sth

還可以通過跳轉(zhuǎn)表實現(xiàn)。

def f(x):
  return {
    0: "You typedzero.\n",
    1: "You are in top.\n",
    2: "n is an even number.\n"
}.get(n, "Only single-digit numbers are allowed\n")

建議4:在代碼中適當(dāng)添加注釋(用來解釋代碼的功能、原因和想法;對于不再需要的代碼應(yīng)該直接刪除而不是注釋掉,可以使用版本控制工具找回代碼)

·使用塊或者行注釋的時候僅僅注釋那些復(fù)雜的操作、算法,還有可能別人難以理解的技巧或者不夠一目了然的代碼。

·注釋和代碼隔開一定的距離,同時在塊注釋之后最好能夠多留幾行空白再寫代碼。

·給外部可訪問的函數(shù)和方法添加注釋文檔。注釋要清楚地描述方法的功能,并對參數(shù)、返回值以及可能發(fā)生的異常進(jìn)行說明,使得外部調(diào)用它的人員僅僅看docstring就能正確使用。較為復(fù)雜的內(nèi)部方法也需要進(jìn)行注釋。(Pycharm可以幫助解決)

·推薦在文件頭中包含copyright申明、模塊描述等。(Pycharm可以幫助解決)

建議5:通過適當(dāng)添加空行使得代碼布局更為優(yōu)雅合理

·在一組代碼表達(dá)完一個完整的思路之后,應(yīng)該用空白行進(jìn)行間隔(if塊、while塊等)

·盡量保持上下文語義的易理解性(調(diào)用時最好調(diào)用者在上,被調(diào)用者在下)

·避免過長的代碼行,每行最好不要超過80個字符。(Pycharm可以幫助解決)

·不要為了保持水平對齊而使用多余的空格

·一行不要有多個命令

·空格的使用能夠在需要強(qiáng)調(diào)的時候警示讀者,在疏松關(guān)系的實體間起到分隔作用,而在具有緊密關(guān)系的時候不要使用空格。

建議6:編寫函數(shù)的4個原則

·函數(shù)設(shè)計要盡量短小,嵌套層次不宜過深。

·函數(shù)聲明應(yīng)該做到合理、簡單、易于使用。

·函數(shù)參數(shù)設(shè)計應(yīng)該考慮向下兼容。

·一個函數(shù)只做一件事情,盡量保證函數(shù)語句粒度的一致性。

建議7:將常量集中到一個文件

·constant.py

class _const:
  class ConstError(TypeError): pass
  class ConstCaseError(ConstError): pass
  def __setattr__(self, name, value):
    if self.__dict__.has_key(name):
      raise(self.ConstError, "Can't change const.%s" % name)
    if not name.isupper():
      raise(self.ConstCaseError, "const name %s is not all uppercase" % name)
    self.__dict__[name] = value
import sys, const
sys.modules[__name__] = _const()
const.MY_CONSTANT = 1
const.MY_SECOND_CONSTANT = 2
const.MY_THIRD_CONSTANT = 'A'
const.MY_FORTH_CONSTANT = 'B'

·其他模塊中引用

from constant import const
print(const.MY_SECOND_CONSTANT)

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


名稱欄目:改善Python程序的建議
瀏覽地址:http://weahome.cn/article/jpeghj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部