为什么模块名称中的连字符会产生语法错误?

发布于 2025-01-01 01:22:57 字数 249 浏览 0 评论 0原文

我使用的是 python 2.6,并在导入模块时得到以下信息:

  File "./test-nmea-uploader.py", line 11
    import nmea-uploader as sut
               ^
SyntaxError: invalid syntax

为什么会这样? python 风格指南似乎没有提及在名称中使用连字符,尽管它建议使用下划线。

艾伦

I'm using python 2.6 and get the following when importing a module:

  File "./test-nmea-uploader.py", line 11
    import nmea-uploader as sut
               ^
SyntaxError: invalid syntax

Why is that so? The python style guide seems to hold no mention about using hyphens in names, although it suggest the use of underscores.

Alan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一念一轮回 2025-01-08 01:22:57

根据 http://docs.python.org/reference/lexical_analysis.html#identifiers,任何标识符必须以小写/大写字母或下划线开头,并且包含小写/大写字母、数字或下划线。

包名称是标识符,因此它们绑定到相同的规则。

另外,nmea-uploader也可能意味着从nmea中减去uploader
由于您可以在 python 文件中的任何位置导入包,因此如果您提前定义了变量 nmeauploader,如果允许使用连字符作为标识符,解释器会感到困惑名称。

According to http://docs.python.org/reference/lexical_analysis.html#identifiers, any identifier must start with a lowercase/uppercase letter or an underscore and contain lowercase/uppercase letters, numbers or an underscore.

Package names are identifiers, so they are bound to the same rules.

In addition, nmea-uploader might also mean the subtraction of uploader from nmea.
Since you can import a package anywhere in a python file, if you have defined the variables nmea and uploader in advance, the interpreter would get confused if a hyphen was allowed for identifier names.

决绝 2025-01-08 01:22:57

标识符不能包含连字符。这不是风格问题,而是语言语法的一部分,请参见 http://docs.python.org /reference/lexical_analysis.html#identifiers

标识符(也称为名称)由以下词汇定义描述:

identifier ::=  (letter|"_") (letter | digit | "_")*
letter     ::=  lowercase | uppercase
lowercase  ::=  "a"..."z"
uppercase  ::=  "A"..."Z"
digit      ::=  "0"..."9"

Identifiers cannot contain hyphens. This is not a question of style, but a part of the language syntax, see http://docs.python.org/reference/lexical_analysis.html#identifiers

Identifiers (also referred to as names) are described by the following lexical definitions:

identifier ::=  (letter|"_") (letter | digit | "_")*
letter     ::=  lowercase | uppercase
lowercase  ::=  "a"..."z"
uppercase  ::=  "A"..."Z"
digit      ::=  "0"..."9"
冷︶言冷语的世界 2025-01-08 01:22:57

字符 - 是 python 中的运算符,因此不能在标识符中使用它。

请参阅词法分析 - Python v2.7.2 文档

The character - is an operator in python so you can't use it in an identifier.

See Lexical analysis — Python v2.7.2 documentation.

橙味迷妹 2025-01-08 01:22:57

Python 风格指南似乎没有提及在名称中使用连字符

,因为 python 样式指南 与确定代码中的错误 完全无关。

样式指南建议您应该使用什么。要确定您可以使用什么,请查阅语言语法或其他此类文档。

The python style guide seems to hold no mention about using hyphens in names

Because the python style guide is totally irrelevant to determining what is an error in your code or not.

The style guide suggests what you should use. To determine what you may use, consult the language grammar, or other such documentation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文