代碼變量命名方法和使用規范


一、匈牙利命名法

1 簡介

匈牙利命名法(Hungarian Notation),是由1972年至1981年在施樂公司工作的程序員查爾斯.西蒙尼(Charles.Simony),此人后來成為微軟的總設計師,因其祖籍是匈牙利,故有此名。

匈牙利命名法在國內之所以這么有名是因為當時微軟對其推崇備至。在上世紀90年代,MFC的出現影響了一代代程序員,而MFC中各種類的命名是以匈牙利命名法命名的,再加上當時微軟出了不錯的書《Windows程序設計》推波助瀾,而同時呢,國內UNIX編程風格氛圍不強,這種命名法幾乎成了國內變量命名法的標准。這就導致在現在的某些書籍或者項目中推薦使用匈牙利命名法

2 基本規則

匈牙利命名法的基本規則是:變量名=屬性+類型+對象描述,其中每一個對象的名稱都要求有明確含義,可以是對象名字全程或者一部分,同是要基於容易記憶理解的原則。

3 常用前綴

  • 屬性部分
前 綴 類 型 前 綴 類 型
全局變量 g_ 常量 c_
類的成員變量 m_ 靜態變量 s_
  • 類型部分:類型值得是變量的類型,如整型、浮點型、字符串等。
前 綴 類 型 前 綴 類 型
數組 a 長整型 l
指針 p 布爾型 b
函數 fn 浮點型 f
無效 v 雙字節 dw
句柄 h 字符串 sz
短整型 n 雙精度浮點型 d
計數 cnt 字符 ch
整型 i 字節 by
字節 w 無符號 u
  • 描述部分:用來表示該變量描述的意義,即該變量所表示的含義。
前 綴 類 型 前 綴 類 型
最大 Max 最小 Min
初始化 Init 臨時變量 Temp
源對象 Src 目的對象 Dest

4 例子

變量定義的這些描述符號可以多個同時使用,順序一般是m_,再指針,再簡單數據類型,再其它。

hwnd: h類型描述,表示句柄;wnd是變量的對象描述,表示窗口,所以hwnd表示窗口句柄。

pfnEatApple: pfn是類型描述,表示指向函數的指針;EatApple是變量對象描述,所以pfnEatApple表示指向EatApple函數的函數指針變量。

m_lpszStr: m_表示是成員變量;l表示長整型;p表示指針;sz表示的是字符串;Str是對象描述;所以m_lpszStr的含義就是表示指向一個字符串的長指針成員變量。

二、駝峰命名法(小駝峰法)

1 簡介

駝峰命名法是指混合使用大小寫字母來構成變量和函數的名字,是以單個單詞或多個單詞組成變量或者函數的唯一標識符時,第一個單詞以小寫字母開始,第二個單詞以及后面的每一個單詞的首字母大寫。

2 例子

下面是分別用駱駝式命名法和下划線法命名的同一個函數:

printEmployeePaychecks();使用了駱駝式命名法:函數名中的每一個邏輯斷點都有一個大寫字母來標記;

print_employee_paychecks();使用了下划線法:函數名中的每一個邏輯斷點都有一個下划線來標記。

三、帕斯卡命名法(大駝峰法)

1 簡介

帕斯卡(pascal)命名法與駱駝命名法類似。只不過駱駝命名法是首字母小寫,而帕斯卡命名法是首字母大寫

2 例子

public void DisplayInfo(); String UserName;

二者都是采用了帕斯卡命名法。在C#中,以帕斯卡命名法和駱駝命名法居多。

四、下划線命名法

所有字母均小寫,每個單詞間以下划線分割,樣子像 “nginx_vip”

m_iMyData是一個匈牙利命名法,m_表示它是成員變量,小寫的i說明了它是個整型,后面的和帕斯卡命名相同,指示了該變量的用途

myData是一個駱駝命名法,它第一個單詞的第一個字母小寫,后面的單詞首字母大寫,看起來像一個駱駝

MyData就是一個帕斯卡命名的示例

my_data是一個下划線命名的示例

五、下划線的使用(Python)

1 名稱前的單下划線(如:_name)

用於指定屬性和方法是“私有”的。但是Python不像Java一樣具有私有屬性、方法、類,在屬性和方法之前加單下划線,只是代表該屬性、方法、類只能在內部使用,是API中非公開的部分。如果用from import * 和 from import * 時,這些屬性、方法、類將不被導入。

class Persion: def init(self): self._name="小明"   

2 名稱前的雙下划線(如:__name)

以雙下划線開頭的方法和屬性表示私有的方法和屬性(可以近似這么理解,不太准確)。
用於禁止外部訪問的類成員,不能用from xx import xx導入,只有類對象可以訪問

class Persion: def init(self): self.__name="小明"    

3 開頭雙下划線和雙下划線結尾

特殊變量,特殊變量是可以直接訪問的,不是私有變量。Python內部調用的方法,一般不建議在程序中調用。

if __name__ == '__main__': print('我想輸出點什么')

六、Java命名規范

包名:多單詞組成時,所有字母都小寫:xxxyyyzzz。
類名、接口名:多單詞組成時,所有單詞的首字母大寫(大駝峰、帕斯卡命名法):XxxYyyZzz。
變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始的每一個單詞首字母大寫(小駝峰法):xxxYyyZzz
常量名:所有字母都大寫,多單詞時每個單詞用下划線連接:XXX_YYY_ZZZ

七、參考

命名方法:https://blog.csdn.net/bailang_zhizun/article/details/82699
命名方法:https://www.jianshu.com/p/a8d1e05c6d68
下划線使用:https://www.cnblogs.com/endmoon/p/9657838.html
下划線使用:https://www.cnblogs.com/lhrbest/p/10281563.html

原文鏈接:https://blog.csdn.net/See_Star/article/details/102624388


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM