【问题标题】:How to do a global from foo import bar from a method in python?如何从python中的方法执行全局from foo import bar?
【发布时间】:2017-09-06 23:31:22
【问题描述】:

所以我正在努力在一个名为 NAO 的机器人上实现 websocket 客户端协议。不涉及太多细节,我不能进行正常的导入,因为在我可以做任何导入语句之前需要一个变量,所以我需要在一个方法中处理我的导入语句。

问题是我需要在一个文件中跨多个类的这些包,因此我真的需要将这些导入全局化。

现在我发现另一个 StackOverflow 帖子处理几乎相同的事情:

Python: how to make global imports from a function

但是,这篇文章只处理常规导入,而不是类导入(这可能有一个正确的名称,但我不知道)

有人知道如何处理这个问题吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    你的意思是这样的?

    >>> def f():
    ...     global pi
    ...     from math import pi
    ...
    >>> pi
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'pi' is not defined
    >>> f()
    >>> pi
    3.141592653589793
    >>>
    

    【讨论】:

    • 好吧,我之前试过这个,但我不确定这是不是正确的方法,所以当我收到另一个错误时我放弃了它。但是您的回答让我对这个新错误有了一些了解。似乎从方法导入会导致具有导入超类的类抛出错误。这种行为也可以在桌面上复制。我意识到这是一个完全不同的问题,但我不妨问:你知道解决这个问题的任何方法吗?
    • @user2983738 hm 也许我可以提供帮助,但我需要更多详细信息。也许只是对SO提出一个新问题?没有看到就很难调试代码:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 2019-10-28
    • 2019-10-07
    • 2019-08-30
    相关资源
    最近更新 更多