JAVA、C、Python各编程语言命名规范(最全、持续补充)

JAVA、C、Python语言命名规范(最全、持续补充)


该篇文章参照链接处内容,并将其整合在一起

一、先了解一下命名的分类
语言命名规范

Java命名规范

  • 类名:需要使用大驼峰命名法(UpperCamelCase)风格。
  • 方法名、参数名、成员变量、局部变量:需要使用小驼峰命名
  • 测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case) 。比如test_get_user()、TIME_LIMIT。并且,测试方法名称要求全部小写,常量以及枚举名称需要全部大写。
  • 项目文件夹名称使用串式命名法(kebab-case)。比如dubbo-registry。
    包名统一使用小写,尽量使用单个名词作为包名,各个单词通过 “.” 分隔符连接,并且各个单词必须为单数。
  • 抽象类命名使用 Abstract 开头。如:public abstract class AbstractClient extends AbstractEndpoint{}。
  • 异常类命名使用 Exception 结尾。如:public class NoSuchMethodException extends RuntimeException{}。测试类命名以它要测试的类的名称开始,以 Test 结尾。如:public class
  1. 常规包名
     
    为了保障每个Java Package命名的唯一性,在Java编程规范中要求开发人员在自己定义的包名前加上唯一的前缀.由于互联网上的域名称是不会重复的,所以多数开发人员采用自己公司在互联网上的域名称作为自己程序包的唯一前缀.例如 : com.sun.swt…
公司项目
	com : 公司项目,copyright由项目发起的公司所有.
	包名 : com.公司名.项目名.模块名…
团队项目
	team : 团队项目,指由团队发起,并由该团队开发的项目,copyright属于该团队所有.
	包名 : team.团队名.项目名.模块名…
  1. 自定义包名
     
    一般公司命名为com.公司名.项目名.模块名…那我们个人的项目又怎么命名呢?个人的英语单词有individual、personal、private、one-man,进一步对以上四个单词词意进行分析并在保证了唯一性,继而使用每个单词的前4个字母作为前缀,与com也做了区分。示例如下所示:
	indi : 个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起者. 包名 :indi.发起者名.项目名.模块名…
	pers : 个人项目,指个人发起,独自完成,可分享的项目,copyright主要属于个人.包名 : pers.个人名.项目名.模块名…
	priv : 私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright属于个人.包名 : priv.个人名.项目名.模块名…
	onem : 与indi相同,推荐使用indi.

Python命名规范

  • 类:总是使用首字母大写单词串。如MyClass、ClassName。内部类可以使用额外的前导下划线。

  • 函数和方法:小写+下划线,如method_name。

  • 函数参数:小写+下划线,如function_parameter_name。如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线,如random_。

  • 全局变量:对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线,如_var_name。应避免使用全局变量。

  • 变量:小写,由下划线连接各个单词。如color、this_is_a_variable。
     
    WARNING

    • 不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
    • 私有类成员使用单一下划线前缀标识。
    • 变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都不是好的命名
       
  • 常量:常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

  • 异常:以“Error”作为后缀。

  • 文件名:全小写,可使用下划线

  • 包:应该是简短的、小写的名字。如果下划线可以改善可读性可以加入,如mypackage。

  • 模块:与包的规范同,如mymodule。

  • 缩写:命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

    • 常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
    • 命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
      例如:
      function 缩写为 fn
      text 缩写为 txt
      object 缩写为 obj
      count 缩写为 cnt
      number 缩写为 num,等。
  • 前导后缀下划线:

    • 一个前导下划线:表示非公有。
    • 一个后缀下划线:避免关键字冲突。
    • 两个前导下划线:当命名一个类属性引起名称冲突时使用。
    • 两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
    • 注意:关于下划线的使用存在一些争议。
  • 特定命名方式:主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

    class Base(object):
    def init(self, id, parent = None):
    self.id = id
    self.parent = parent
    def message(self, msgid):
    其中 id、parent 和 message 都采用了系统保留字命名法。

C和C++语言命名规范

  • 文件命名规则:串式命名。全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc ,my_use_full_class.cc
    • 定义类时文件名一般成对出现, 如 foo_bar.h (头文件串式命名)和 foo_bar.cc(源文件串式命名) 对应于类 FooBar(大驼峰命名)
    • 若是类中含大量内联函数,我们还可使用-ini.h文件,使之文件内容更加清晰,于是又如:
      url_table.h url_table.cc url-table-ini.h
    • c文件以.c结尾,头文件以.h结尾;C++文件以.cpp结尾,头文件以.hpp结尾;cpp和hpp成对出现;
  • 类命名:大驼峰命名,不含下划线。类型命名每个单词首字母大写,以名词形式。比如:MyPalyerManager,这对于所有类型命名一样,类结构体,枚举,类定义都是如此,比如:MyExcitingEnum
  • 数据类型命名:大驼峰命名。每个单词首字母均大写,不包含下划线;如果有缩写通常以缩写首字母大写即可。(包括类名、结构体名、枚举、类型定义typedef),都使用此约定。
  • 变量命名规则:串式命名。变量名一律小写,单词用下划线相连。
    • 特殊的是类成员变量,后跟下划线或前面加m区别普通变量,比如:player_name_,m_ player_id
    • 全局变量则以 g_ 开头,比如 :g_system_time
  • 常量命名规则:驼峰形命名(大小驼峰都可)。通常在开头加上k区分,大小写混写;或者全部大写。如:const int AWEEK_NUM = 7;
  • 命名空间:同类型名(串式命名);大驼峰法命名;减少(尽量不用)缩写;基于项目名称和结构
  • 函数命名:小驼峰命名。
    • 常规函数每个单词首字母大写,使用命令式语气,比如:OpenFile() CheckFileName(),
    • 存取函数或短小的内联函数使用小写加下划线,且与访问变量相吻合,比如set_num_errors();
  • 枚举命名:大驼峰命名,不含下划线。枚举类名属于类型名,按类命名,枚举值全大写加下划线,比如:ENUM_NAME 。
  • 宏变量命名:如果你一定要用到宏,全大写加下划线,比如:define PI_ROUND 3.0
  • 可以借助工具进行美化。方便快捷。比如说我用的Qt里面的Beautifier,就可以进行一键格式化代码。

注意:无论是Java、python还是c都只识别数字,字母,下划线,且第一个字符必须是字母或下划线

链接:

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
命名空间是一种用于组织和管理变量、函数、类等标识符的技术。它提供了一种将标识符分组并避免冲突的方法。常用编程语言中广泛使用命名空间来避免命名冲突,提高代码的可维护性和扩展性。 命名空间的概念: - 命名空间是一种将标识符(如变量、函数、类等)与特定上下文关联的机制。 - 每个命名空间都有一个唯一的名称,标识符可以在特定的命名空间中定义和访问。 常用编程语言中的命名空间应用: 1. Python 中的命名空间: - Python 使用模块作为命名空间的基本单位,每个模块都有自己的命名空间。 - 可以使用 `import` 语句导入模块,并使用模块名前缀来访问模块中的标识符。 ```python import math x = math.sqrt(25) # 使用 math 模块的 sqrt() 函数 ``` 2. C++ 中的命名空间: - C++ 使用命名空间来组织代码,避免全局命名冲突。 - 可以使用 `namespace` 关键字定义命名空间,并使用命名空间限定符来访问命名空间中的标识符。 ```cpp #include <iostream> namespace MyNamespace { int x = 10; void foo() { std::cout << "Inside MyNamespace" << std::endl; } } int main() { std::cout << MyNamespace::x << std::endl; // 访问命名空间中的变量 MyNamespace::foo(); // 调用命名空间中的函数 return 0; } ``` 3. Java 中的命名空间: - Java 使用包(package)来管理命名空间,每个包都有自己的命名空间。 - 可以使用 `import` 关键字导入包,并使用包名前缀来访问包中的类。 ```java import java.util.ArrayList; public class Example { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); // 使用 java.util 包中的 ArrayList 类 list.add(10); System.out.println(list.get(0)); } } ``` 通过使用命名空间,可以将代码组织得更加清晰和模块化,避免命名冲突,并提高代码的可读性和可维护性。不同的编程语言有不同的命名空间实现方式,但它们都遵循相似的原则,通过为标识符创建独立的上下文,使得标识符可以在特定的命名空间中定义和访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值