python竟然支持中文变量名和函数名?

Python/PHP/Perl 开发与设计
回复
头像
百草谷居士
帖子: 3300
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 30 次
接收感谢: 39 次
联系:

python竟然支持中文变量名和函数名?

#1

帖子 百草谷居士 » 2020-02-10 13:26

今天发现,python竟然支持中文变量名和函数名,真是令人惊呆了!
Python 3.7.5 (default, Nov 20 2019, 09:21:52)
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 我='中国'
>>> 爱=4
>>> 我*爱
'中国中国中国中国'
>>>
>>> def 河南():
... print('位于中原腹地,省会是郑州。')
...
>>> 河南
<function 河南 at 0x7f1ed1349440>
>>> 河南()
位于中原腹地,省会是郑州。
>>>
Ubuntu 19.04
米聊群:Ubuntu交流群,ID:50326269。注册米聊用户后可以搜索加入,即时通讯,沟通更快捷
头像
astolia
论坛版主
帖子: 4393
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 737 次

Re: python竟然支持中文变量名和函数名?

#2

帖子 astolia » 2020-02-10 13:57

你这就孤陋寡闻了。这三十年冒出来的稍微流行点的新语言基本都支持的:Java、C#、Javascript、Python、Ruby、Go……本质上就是一个标识符允许的字符范围问题,这个年代了,没有理由做太多限制,更老的语言由于历史原因不支持unicode可以理解,但新语言不支持就是设计者脑子有问题了。
即使是C/C++这样的,也通过修订规范C99和C++11支持了非数字字母下划线的标识符,msvc和clang都已经支持了的,就是gcc一直在拖,拖到今年即将发布的gcc10才官方支持
头像
百草谷居士
帖子: 3300
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 30 次
接收感谢: 39 次
联系:

Re: python竟然支持中文变量名和函数名?

#3

帖子 百草谷居士 » 2020-02-10 14:35

可能确实是孤陋寡闻了,哈哈!自从delphi/pascal之后,就没再学过啥新语言。也就是趁着这个春节封闭,在学python。还以为这东西像c或者pascal一样,只能使用字母数字下划线呢!并且教材上也是这么讲的。
Ubuntu 19.04
米聊群:Ubuntu交流群,ID:50326269。注册米聊用户后可以搜索加入,即时通讯,沟通更快捷
头像
astolia
论坛版主
帖子: 4393
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 737 次

Re: python竟然支持中文变量名和函数名?

#4

帖子 astolia » 2020-02-10 14:48

说明你的教材是针对python2的,python3才支持unicode标识符。既然python2都寿终正寝了,你的教材也可以扔了。
如果是针对python3的,那这种基本错误都能犯的教材更应该扔了
头像
Ping-Wu
帖子: 1318
注册时间: 2012-11-14 9:34
系统: Ubuntu 20.04
送出感谢: 3 次
接收感谢: 58 次

Re: python竟然支持中文变量名和函数名?

#5

帖子 Ping-Wu » 2020-02-10 16:01

这是 2 跟 3 的最大不同点之一。目前 20.04 的 daily built 里 python 2 跟 3 还并存,但正式版出来后,2 应该就没有了???

19.10 里的预设版本是2,20.04 则没有预设版本,执行时必须特别指名是2或3。我的感觉是,Ubuntu 可以根据预定计划在20.04里把 python 2 除掉,但使用者可以拒绝更新,到后来 Ubuntu 还是要认输,python 2 还是会被继续保留。这是我个人的看法。
头像
百草谷居士
帖子: 3300
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 30 次
接收感谢: 39 次
联系:

Re: python竟然支持中文变量名和函数名?

#6

帖子 百草谷居士 » 2020-02-23 10:45

astolia 写了:
2020-02-10 14:48
说明你的教材是针对python2的,python3才支持unicode标识符。既然python2都寿终正寝了,你的教材也可以扔了。
如果是针对python3的,那这种基本错误都能犯的教材更应该扔了
基于python2.5的《Python核心编程》(第二版),前面的部分,通过中网上搜下python3和python2差别,书上的例子都能验证。这到了“web编程”这一章,变化太大,实在受不了了。扔!必须得扔!!
Ubuntu 19.04
米聊群:Ubuntu交流群,ID:50326269。注册米聊用户后可以搜索加入,即时通讯,沟通更快捷
回复

回到 “Python/Php/Perl”