日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件工程学习笔记《二》代码规范

發(fā)布時間:2023/11/30 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件工程学习笔记《二》代码规范 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 軟件工程學(xué)習(xí)筆記目錄
  • google代碼規(guī)范
    • 節(jié)選python來自google翻譯
  • 錯誤注釋的示例
  • 命名規(guī)范
  • import語句的規(guī)范
  • import this 源碼

軟件工程學(xué)習(xí)筆記目錄

[https://blog.csdn.net/csdn_kou/article/details/83754356]

google代碼規(guī)范

https://github.com/google/styleguide

節(jié)選python來自google翻譯

2.17函數(shù)和方法裝飾器
當(dāng)有明顯的優(yōu)勢時,明智地使用裝飾器。避免 @staticmethod和限制使用@classmethod。

2.17.1定義
函數(shù)和方法的裝飾器 (又名“ @符號”)。一個常見的裝飾器@property,用于將普通方法轉(zhuǎn)換為動態(tài)計算的屬性。但是,裝飾器語法也允許用戶定義的裝飾器。具體來說,對于某些功能my_decorator,這個:

class C(object):
@ my_decorator
def 方法(self):
# method body …
相當(dāng)于:

class C(object):
def Methodmethod(self):
# method body …
Methodmethod = MyDecoratormy_decorator(Methodmethod)

2.17.2優(yōu)點
優(yōu)雅地指定方法的一些轉(zhuǎn)換; 轉(zhuǎn)換可能會消除一些重復(fù)的代碼,強制執(zhí)行不變量等。

2.17.3缺點
裝飾器可以對函數(shù)的參數(shù)執(zhí)行任意操作或返回值,從而導(dǎo)致令人驚訝的隱式行為。此外,裝飾器在導(dǎo)入時執(zhí)行。裝飾器代碼中的失敗幾乎無法從中恢復(fù)。

2.17.4決定
當(dāng)有明顯的優(yōu)勢時,明智地使用裝飾器。裝飾器應(yīng)遵循與函數(shù)相同的導(dǎo)入和命名準(zhǔn)則。裝飾者pydoc應(yīng)該清楚地說明該函數(shù)是一個裝飾器。為裝飾器編寫單元測試。

避免裝飾器本身的外部依賴(例如,不要依賴文件,套接字,數(shù)據(jù)庫連接等),因為它們在裝飾器運行時可能不可用(在導(dǎo)入時,可能來自pydoc或其他工具)。使用有效參數(shù)調(diào)用的裝飾器應(yīng)該(盡可能)保證在所有情況下都成功。

裝飾器是“頂級代碼”的特例 - 請參閱主題以獲得更多討論。

@staticmethod除非被強制使用以便與現(xiàn)有庫中定義的API集成,否則切勿使用。寫一個模塊級函數(shù)。

使用@classmethod只寫了一個名為構(gòu)造函數(shù)或類特定的例程,它需要修改全局狀態(tài),如進程范圍的緩存時。

錯誤注釋的示例

命名規(guī)范

import語句的規(guī)范

  • import次序:先import Python內(nèi)置模塊,在import第三方模塊,最后import自己開發(fā)項目中的其他模塊;這幾種模塊用空行分割開來
  • 一條import只可以import一個模塊
  • 當(dāng)從模塊中import多個對象且超過一行時,使用如下斷行方法:
    • from module import (obj1,obj2,obj3,obj4,obj5,obj6)
  • 不要使用from module import * ,除非時import常量定義模塊或其它你確保不會出現(xiàn)命名空間沖突的模塊

import this 源碼

import this

python3 test.py


The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let’s do more of those!


ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm
源代碼

s = """Gur Mra bs Clguba, ol Gvz CrgrefOrnhgvshy vf orggre guna htyl. Rkcyvpvg vf orggre guna vzcyvpvg. Fvzcyr vf orggre guna pbzcyrk. Pbzcyrk vf orggre guna pbzcyvpngrq. Syng vf orggre guna arfgrq. Fcnefr vf orggre guna qrafr. Ernqnovyvgl pbhagf. Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf. Nygubhtu cenpgvpnyvgl orngf chevgl. Reebef fubhyq arire cnff fvyragyl. Hayrff rkcyvpvgyl fvyraprq. Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff. Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg. Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu. Abj vf orggre guna arire. Nygubhtu arire vf bsgra orggre guna *evtug* abj. Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn. Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn. Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""d = {} for c in (65, 97):for i in range(26):d[chr(i+c)] = chr((i+13) % 26 + c)print "".join([d.get(c, c) for c in s])

網(wǎng)上很多人說是惡搞,這其實是凱撒密碼:
字符前移13位然后模26而已

總結(jié)

以上是生活随笔為你收集整理的软件工程学习笔记《二》代码规范的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。