Python目录名称可以是关键字吗?例如“import”?

4

我可以在文件夹中使用名称为“import”的Python代码吗?或者导入命令会因此无法解析它?有没有任何方法可以解决这个问题?

3个回答

10
您可以使用内置的__import__函数,它接受任何字符串。因此,您可以编写如下代码:
__import__('keyword.submodule')

这并不是绝对的。在许多情况下,使用__import__会非常方便。总之,Python中的模块名称没有任何限制。是否应该滥用它是另一个问题。 - Olivier Verdier
1
@Olivier,我和@Mike的想法一致。__import__是在你在运行时知道模块名称时使用的。它绝对不是用来导入一个名为“import”的模块的。__import__('this')很棒!;) - mac
我正在使用pythondotnet库将一些.NET对象导入到我的Python脚本中。其中一个命名空间被称为“def”,因此如果不调用“__import__(“def”)”,我将无法使用它们。虽然最好的做法是在可能的情况下使用import关键字(大多数情况下应该如此),但有些情况需要采用其他方法。 - CodeJockey

4
你可以创建一个以Python关键字命名的目录,用于存储你的Python代码。但是不应将此目录用作包,因为包名称应为有效的Python标识符。

2
@Olivier,我说的是“应该”。Python并不能阻止我做各种可怕的事情。我可以使用无效的标识符作为变量,通过修改globals()或对属性使用setattr或其他许多地方,但幸运的是我知道更好的做法。 - Mike Graham
1
你的回答有误导性:你说一个目录可以但一个包不可以成为Python关键字?我认为无论哪种情况都是不好的做法。 - Olivier Verdier
我不认为有必要对那些与其包含的Python代码没有任何关系的目录强制使用命名约定。 - Mike Graham

0
“import” 命令会失败并无法解析它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接