这有啥好奇怪的。
如果我跟你说中文的时候中间夹着代码你难受不。
if
我
.
说话
(
你
):
难受_status
=
问
(
你
,
"难受不"
)
if
难受_status
==
True
:
问
(
你
,
"知道了么"
)
if
问
(
你
,
"知道了么"
)
==
True
:
三连
.
点赞
()
else
:
三连
.
评论
(
你
.
疑问
)
机灵抖完了,说点有用的。
编程语言又叫计算机语言,比如python,java,go,c++,易语言。
很显然这些语言不是中文也不是英文,他是一种独特的语言。
计算机最主要的就是要让计算机看懂,如果看不懂就会报错。
计算机看懂语言最重要的其实是语法,只要语法对基本上就ok。
有些杠精可能会在此处杠一下子,代码报错大部分都不是语法报错。
对,没错,但是那些报错都是计算机看懂代码的前提下报的错。
所以说,只有语法错误,是计算机不懂你在说什么,其他类型的报错,是计算机知道你在说什么,但是他没法照着干。
那么代码还要具备另外一个特性,就是可读性,可维护性。
换句话说就是,代码不光要让计算机能懂,还要让人能懂。
所以标志符,关键字,起名是为了给人看的,只要便于理解,编程语言允许这么命名,用什么语言命名其实不重要。
这时候有杠精可能要站出来了,中文命名会影响代码的执行效率。
那我们用事实说话。
import time
def clock(func):
def clocked(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(func.__name__, end - start)
return result
return clocked
@clock
def test():
a = True
b = 0
while a:
b+=1
if b>=1000000:
break
@clock
def 测试():
诶 = True
币 = 0
while 诶:
币+=1
if 币>=1000000:
break
if __name__ == '__main__':
for i in range(10):
测试()
test()
两个一模一样的函数,一个所有的都用中文命名,一个所有的都用英文命名。看看运行时间。
跑10组作为对比
测试结果显而易见,并不会对运行效率产生影响。
以上说了这么多,就是为了论证,标志符,关键字的中文命名对实际执行和理解上并不会产生太多影响。
那么为什么很多人反对中文在编程中使用。
因为要照顾到读代码的强迫症患者。
代码写久了就会有这种强迫症,习惯了用字母作为函数名,类名,变量名,突然看到中文命名就会很难受。宁愿用pinyin也不用中文。这是几乎所有程序员都有的强迫症,甚至延伸出其他强迫症。
比如我就受不了点赞数是偶数。