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

软件和网站开发以及相关技术探讨
回复
头像
百草谷居士
帖子: 3922
注册时间: 2006-02-10 16:36
系统: Mint21.1/Deepin20.8

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>
>>> 河南()
位于中原腹地,省会是郑州。
>>>
debian 12 / 深度系统 20.9 / Mint 21.3

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
astolia
论坛版主
帖子: 6459
注册时间: 2008-09-18 13:11

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才官方支持
头像
百草谷居士
帖子: 3922
注册时间: 2006-02-10 16:36
系统: Mint21.1/Deepin20.8

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

#3

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

可能确实是孤陋寡闻了,哈哈!自从delphi/pascal之后,就没再学过啥新语言。也就是趁着这个春节封闭,在学python。还以为这东西像c或者pascal一样,只能使用字母数字下划线呢!并且教材上也是这么讲的。
debian 12 / 深度系统 20.9 / Mint 21.3

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
astolia
论坛版主
帖子: 6459
注册时间: 2008-09-18 13:11

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

#4

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

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

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 还是会被继续保留。这是我个人的看法。
头像
百草谷居士
帖子: 3922
注册时间: 2006-02-10 16:36
系统: Mint21.1/Deepin20.8

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编程”这一章,变化太大,实在受不了了。扔!必须得扔!!
debian 12 / 深度系统 20.9 / Mint 21.3

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
回复