Python从文件导入函数

Python从文件导入函数,python,import,Python,Import,我在名为8.py的文件中有一个函数ispalindrome如何导入它? 如果我可以用这个名称创建一个.py文件,为什么8是无效的名称 from 8 import ispalindrome 最佳答案:重命名您的文件。;) 有一个名为8.py的文件会破坏文件和Python文件的一致性(导入文件时遇到的麻烦清楚地说明了这些规则的原因) 通常,应使文件名与变量相同: 它们以字母或下划线开头 之后,它们完全由字母、数字和下划线组成 它们是小写的 它们很短(没有人喜欢输入一个巨大的名字) 但是,如果必须

我在名为
8.py的文件中有一个函数ispalindrome
如何导入它? 如果我可以用这个名称创建一个.py文件,为什么8是无效的名称

from 8 import ispalindrome

最佳答案:重命名您的文件。;)

有一个名为
8.py
的文件会破坏文件和Python文件的一致性(导入文件时遇到的麻烦清楚地说明了这些规则的原因)

通常,应使文件名与变量相同:

  • 它们以字母或下划线开头
  • 之后,它们完全由字母、数字和下划线组成
  • 它们是小写的
  • 它们很短(没有人喜欢输入一个巨大的名字)

  • 但是,如果必须将文件命名为
    8.py
    ,则可以使用导入该文件

    为了演示,我制作了一个简单的
    8.py
    文件,该文件具有以下功能:

    def func():
        return True
    
    以下是我运行的测试:

    >>> from 8 import func
      File "<stdin>", line 1
        from 8 import func
             ^
    SyntaxError: invalid syntax
    >>> x = __import__("8")
    >>> x.func()
    True
    >>>
    
    >>从8导入函数
    文件“”,第1行
    从8导入func
    ^
    SyntaxError:无效语法
    >>>x=导入(“8”)
    >>>x.func()
    符合事实的
    >>>
    

    如您所见,使用
    \uuuuuu导入
    是有效的。然而,这被认为是草率的,通常应该避免。我强烈建议您注意我的第一个答案,如果可以,请重命名该文件。

    Python模块名称必须是有效的标识符。“8”不是有效的标识符。请尝试“8”或“file8”或任何不以数字开头的选项。

    这通常适用。可能会失败吗?请将文件从8重命名为其他名称<代码>8不是Python模块的有效名称。它们需要以下划线或字母开头。解决了这个问题,你就会很好。我相信第一部分的回答是+1。是的,甚至向新手用户提及第二部分都会投反对票。好吧,在你添加免责声明后删除了反对票。不过,这里的主题应该是命名规则(为什么
    8
    是一个无效的名称?),而不是导入技巧。@LukasGraf-There。我添加了一个巨大的免责声明,并链接到政治公众人物文档。我尽我所能给了那个菜鸟所有的泡泡糖@iCodez好多了。然而,不以数字开头的标识符不仅仅是PEP8鼓励的一种约定,它是PEP8中定义的一种要求。因此,通过退出
    \uuuu import\uuuu
    仍然导入这样一个模块是不应该做的事情,即使是知道自己在做什么的人也不应该这么做<代码>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu有其合法的用途(例如按名称动态导入模块),但在我看来,这并不是其中之一。+1表示不让
    \uuuuuuuuuuuuu