开发者

How does the "magic lines(s)" in python work, when specifying encoding in python file?

At the start of a python file (first line) sometimes I read

# -*- coding: utf-8 -*-

and sometimes I read

# encoding: utf-8开发者_如何学JAVA

Both lines seem to do the same thing: specifying utf8 as encoding for all the text put in the file.

I have to questions:

  1. Why does this even work? I thought the interpreter ignores everything after a # because it invokes a comment.
  2. What is the difference between the two lines above? Does the interpreter just ignore the -*-?


The two forms are equivalent. The -*- version is a special kind of comment that Emacs understands. See PEP 263 for more information.

If a comment like in either of these forms is one of the first two lines of a file, the interpreter will use the specified encoding to read the file.


It works because the implementation looks for it, there is nothing magical about it. There is no difference, all possible variants are defined by PEP 263 (the only difference is that the first one is Emacs-compatible).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜