gpt4 book ai didi

python - 我应该在 python 中输入什么样的编码声明

转载 作者:太空狗 更新时间:2023-10-29 21:47:33 25 4
gpt4 key购买 nike

我从网站了解到,当我不想输入友好的 unicode 字符时,我应该在 python 中添加代码声明:http://www.python.org/dev/peps/pep-0263/ , 但我仍然对此感到困惑。

假设我在linux下用vim工作,新建一个py文件,输入代码如下:

#!/usr/bin/python2.7
# -*- coding: utf8 -*-
s = u'ޔ'
print s

1。我尝试用如下代码替换第 2 行:

import sys
reload(sys)
sys.setdefaultencoding('utf8')

但它不起作用,它们不一样吗?

2。我对linux不是很熟悉,我真的不知道为什么要在代码声明的开头和结尾添加_*_,当我试图替换# -*- 编码时: utf8 -*-# code=utf8# code: utf8,我得到一个错误:

File "pythontest.py", line 3
SyntaxError: Non-ASCII character '\xde' in file pythontest.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

但网站http://www.python.org/dev/peps/pep-0263/中提到了这些代码声明!

并且根据文档,允许如下代码声明:

# This Python file uses the following encoding: utf-8

糟糕,这是什么?我看电脑是识别不了的,到底要声明什么代码?我越来越迷茫了。

感谢您的帮助。

最佳答案

您链接的 PEP 的摘要确实说明了一切:

This PEP proposes to introduce a syntax to declare the encoding of a Python source file. The encoding information is then used by the Python parser to interpret the file using the given encoding. Most notably this enhances the interpretation of Unicode literals in the source code and makes it possible to write Unicode literals using e.g. UTF-8 directly in an Unicode aware editor.

(重点是我的)。

即使您想要做的事情可行(以编程方式替换源文件的编码),它也没有任何意义。想一想:代码是静态的(不会改变)。尝试使用不同的编码来阅读它是没有意义的:只有一个正确的编码(源代码的作者在其中编辑了源代码)。

至于语法:

# This Python file uses the following encoding: utf-8

PEP 本身说语法是“没有解释器行,使用纯文本”。它被放置在那里供人类使用。因此,如果您在文本编辑器中打开一个文件并发现它充满乱码,您可以在其菜单中手动设置源代码的编码。

编辑:至于为什么要将编码放在# -*--*- 之间……这纯粹是约定俗成的。第一个符号,井号,告诉它这是一个注释(所以它不会被编译成字节码),然后 _*_ 只是告诉解析器那个特定注释的一种方式是给他/她的。

这与放入源代码没有任何不同:

# TODO: fix this nasty bug

其中 TODO: 部分告诉开发人员(和某些 IDE)这是一条需要采取行动的消息。你真的可以使用你想要的任何东西,包括 @MarkZarWTF!...只是约定俗成!

喂!

关于python - 我应该在 python 中输入什么样的编码声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8278264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com