是否可以从Python中导入的模块(使用字符串)在主模块中设置全局变量?
(是的,我知道这不是最佳实践。)
最终我希望它看起来像这样:
main.py
import mod
def func():
print('failure')
mod.run(func)
func()
Run Code Online (Sandbox Code Playgroud)
mod.py
def func2():
print('success')
def run(f):
globals()[f.__name__] = func2
Run Code Online (Sandbox Code Playgroud)
结果是'failure'因为全局是相对于模块而言的。
我想用模块中的 , 覆盖func变量func2。
另一个警告:变量发生func变化,所以我需要引用它f.__name__ string
func我知道如果在通过 更改名称之前更改了名称,则此方法将不起作用mod.run(func)。
我的问题: 是否可以从导入的模块更改主模块中的功能,而不更改上面示例中的代码main.py?如果是这样,怎么办?
我正在尝试使用Brython在浏览器中运行 Python 代码,并在该 Python 代码中使用 websockets。
我有工作的 JavaScript 代码,可以连接到位于http://www.websocket.org/echo.html的 Websocket echo 服务器。
根据文档,该函数JSObject可用于操作 Brython 中的 JavaScript 对象,但我无法使用 或 使其ws = JSObject(WebSocket("ws://echo.websocket.org/"))工作ws = JSObject(new WebSocket("ws://echo.websocket.org/"))。
如何使用 Brython 在 Python 代码中制作一个连接到 echo 服务器的简单“Hello World”示例?
另请参阅如何使用 Brython 导入库以使用未内置于 Brython 的库(包括常用的 Python 标准库)。