9102 年了, Python3 首行还有必要加编码注释吗?

2019-07-12 10:15:56 +08:00
 luhuan97

最近在帮日本写个项目,快结项了,他们要求全部 py 文件头加上:# -- coding: utf-8 -- 。。。。。。 我没解释,直接就苦逼慢慢改了。

我理解他们对编码的严谨,但是都 python3 了,,,这有必要吗?我觉得是多余的。你们觉得呢?

8721 次点击
所在节点    Python
69 条回复
luhuan97
2019-07-12 12:44:43 +08:00
@Universe 我靠,这大佬,佩服。但是我改完才来发帖的。复制粘贴也没那么麻烦。 只是感觉没必要、多余而已。
40huo
2019-07-12 12:48:15 +08:00
拒绝 py2 的流毒,不加
yingqi7
2019-07-12 12:57:36 +08:00
@luhuan97 #15 废话,人家让加就加啊,有总比没有好不是吗
youngxu
2019-07-12 13:01:28 +08:00
@luhuan97 这也不知道的话…你是怎么会写程序的?程序不就是为了帮人类解决简单重复的工作而发明的吗
realcaoqi95
2019-07-12 13:05:01 +08:00
编辑器自动加的...
hhhsuan
2019-07-12 13:25:20 +08:00
一个 sed 全部搞定
reus
2019-07-12 13:59:08 +08:00
和你用不用 python3 有什么关系?执行环境你又不能控制。
这种事情要慎重考虑,“ 9102 ”年不是什么好的理由。
reus
2019-07-12 13:59:58 +08:00
哎,没吃过亏的年轻人啊!
reus
2019-07-12 14:01:43 +08:00
而且,什么叫“苦逼慢慢改”?你一个写程序的,就算你不会用 concat 命令,难道连写个脚本去改都不会吗?
Torjan
2019-07-12 14:06:09 +08:00
@lniwn nice
witcherhope
2019-07-12 14:15:36 +08:00
9102 年,2020 看你怎么说
laike9m
2019-07-12 14:36:10 +08:00
不论是公司还是个人项目都不加。。
anonymous256
2019-07-12 14:44:38 +08:00
既然是 py3 的项目,就可以不用写。 楼上有的人说执行环境的问题,py3 的解释器已经默认使是 utf-8。难不成你 py3 的代码,强行要在 py2 解释器运行?除非一开始就打算要兼容 py2 和 py3 两个版本。

顺便吐槽一下,我同事也喜欢这么干(多此一举的事情),我用 with open 打开了项目中的文本,code review 的时候,同事让我用 try-except 去捕捉这个异常。这明明是一个不可能发生的异常(除非代码被人恶意做了手脚)。如果连这种异常都要去捕捉,那我每个 import 语句都要 try-except 了,因为理论上,我项目里的 py 文件和第三方库,还有可能被人偷了呢。 何必多此一举?
zkqiang
2019-07-12 16:34:20 +08:00
用 IDE 自动加就行了... 加就加呗,也不是什么难事


另外我赞同 @anonymous256 吐槽的情况,有的人用 Python 这么灵动的语言,就是能写出笨重的代码出来...
处处捕获异常,处处考虑兼容 3.5 之前的版本,以及大量重复代码堆积的属性和 getter setter
diferent
2019-07-12 16:53:11 +08:00
sed
falcon05
2019-07-12 17:04:49 +08:00
手动 copy ……
lihongjie0209
2019-07-12 17:06:54 +08:00
@anonymous256 windows 下打开一个已打开的文件会报错, linux 下不会
lihongjie0209
2019-07-12 17:07:48 +08:00
如果甲方让你把所有的变量名,方法名都改为日文命名, 你也必须改. 因为对方是甲方
mon6912640
2019-07-12 17:26:43 +08:00
不用,py2 遗留的东西,因为这个编码问题才会用 py3 的
fuxiuyin
2019-07-12 17:27:58 +08:00
如果从使用的角度来讲,在一个自己未知的环境部署,还是有必要的。python3 文档里是"By default, Python source files are treated as encoded in UTF-8."注意一下 *default* ,如果程序部署在自己不掌握的环境,尤其是交给别人去部署,这种 *default* 就是不可信的,因为你永远无法知道他们的环境是怎么样的,python 设置呀什么的,甚至他们用的有可能是自己魔改后的 python 解析器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582260

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX