Python编程中对于头部注释的要求
来源:互联网 发布:4*4 矩阵开关 编辑:程序博客网 时间:2024/05/29 03:46
原文地址:https://www.python.org/dev/peps/pep-0263/
Defining the Encoding
Python will default to ASCII as standard encoding if no other encoding hints are given.
To define a source code encoding, a magic comment must be placed into the source files either as first or second line in the file, such as:
# coding=<encoding name>
or (using formats recognized by popular editors):
#!/usr/bin/python# -*- coding: <encoding name> -*-
or:
#!/usr/bin/python# vim: set fileencoding=<encoding name> :
More precisely, the first or second line must match the following regular expression:
^[ \t\v]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)
The first group of this expression is then interpreted as encoding name. If the encoding is unknown to Python, an error is raised during compilation. There must not be any Python statement on the line that contains the encoding declaration. If the first line matches the second line is ignored.
To aid with platforms such as Windows, which add Unicode BOM marks to the beginning of Unicode files, the UTF-8 signature\xef\xbb\xbf will be interpreted as 'utf-8' encoding as well (even if no magic encoding comment is given).
If a source file uses both the UTF-8 BOM mark signature and a magic encoding comment, the only allowed encoding for the comment is 'utf-8'. Any other encoding will cause an error.
Examples
These are some examples to clarify the different styles for defining the source code encoding at the top of a Python source file:
With interpreter binary and using Emacs style file encoding comment:
#!/usr/bin/python# -*- coding: latin-1 -*-import os, sys...#!/usr/bin/python# -*- coding: iso-8859-15 -*-import os, sys...#!/usr/bin/python# -*- coding: ascii -*-import os, sys...
Without interpreter line, using plain text:
# This Python file uses the following encoding: utf-8import os, sys...
Text editors might have different ways of defining the file's encoding, e.g.:
#!/usr/local/bin/python# coding: latin-1import os, sys...
Without encoding comment, Python's parser will assume ASCII text:
#!/usr/local/bin/pythonimport os, sys...
Encoding comments which don't work:
Missing "coding:" prefix:
#!/usr/local/bin/python# latin-1import os, sys...
Encoding comment not on line 1 or 2:
#!/usr/local/bin/python## -*- coding: latin-1 -*-import os, sys...
Unsupported encoding:
#!/usr/local/bin/python# -*- coding: utf-42 -*-import os, sys...
- Python编程中对于头部注释的要求
- 注释的头部
- 关于我对于自己今后编程的要求
- 吊炸天的代码头部注释
- Vim新建文件导入Python头部注释
- Android8.0中CTS测试对于TEE的要求
- eclipse中在函数头部添加说明性注释和参数的注释
- 对于XPath的新要求
- WAS对于主机名的要求
- 对于精度的小要求
- Python中常用的注释
- PhpStorm 头部注释、类注释和函数注释的设置
- PhpStorm 头部注释、类注释和函数注释的设置
- 把字符串中*全部移到字符串的头部---要求时间复杂度和空间复杂度
- PB对于ORACLE中字段的注释处理
- Python中对于yield的个人理解
- 对于Python中RawString的理解
- C#编程中对于延时的办法
- Android 操作SQLite基本用法
- VMware虚拟机中使用usb设备
- Python--matplotlib绘图可视化知识点整理
- 【基于url权限管理 shiro(一)】--基础
- python图像处理——图像形变与缩放
- Python编程中对于头部注释的要求
- assert断言
- bootstrap学习24---媒体对象
- 结构体在内存中的对齐规则
- MySQL SQL语句优化技巧
- [Swift 开发] 深拷贝一个UILabel
- java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
- dedecms-sql调用
- 如何成为一名优秀的新人