【问题标题】:How to reload() .py file at same folder? [duplicate]如何在同一文件夹中重新加载() .py 文件? [复制]
【发布时间】:2021-05-17 10:32:40
【问题描述】:

我在同一个文件夹中有两个 .py 文件:file1.pyfile2.py

file1.py

def hello():
    print("hello world")

file2.py

from file1 import hello
reload(file1)
hello()

为什么会出现错误:

NameError: name 'file1' is not defined

【问题讨论】:

  • @n1c9:不。这不会有帮助,只会为更多问题开辟道路。此问题与__init__.py无关。
  • 另外:顺便说一句,不要将[tag:...] 用于格式化 目的,这意味着链接到网站本身的标签页。您可以改用反引号,即`file1.py`

标签: python


【解决方案1】:

from A import B表示只导入A中的B,不导入A

您导入 hello() 函数而不是 file1。

如果要重新加载file1,只需导入file1即可。

像这样:

from imp import reload
import file1
reload(file1)
file1.hello()

另外,如果你使用python 3.X版本,需要添加

从 imp 导入重新加载

从 importlib 导入重新加载

【讨论】:

    【解决方案2】:

    reload() 重新加载一个以前导入的模块。见https://docs.python.org/3/library/importlib.html#importlib.reload

    from file1 import hello 只导入 hello() 这是一个函数,而不是一个模块。

    另外,reload(module) 可用于 Python 版本 = 3.4,请使用 importlib.reload(module)

    正确的方法是

    import importlib
    
    import file1
    
    file1.hello()
    
    importlib.reload(file1)
    file1.hello()
    

    【讨论】:

      【解决方案3】:

      我不是专家,但你试过吗,

      from file1 import hello as q
      reload(q)
      hello()
      

      【讨论】:

      • TypeError: reload() 参数必须是模块
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      相关资源
      最近更新 更多