![](/img/trans.png)
[英]Making function variables from imported module available in iPython interactive namespace
[英]How to access a function in interactive namespace in ipython?
在一个ipython脚本笔记本中,我想要类似以下内容:
from mod import run
def initialize():
print("In!")
run()
该脚本假设用户需要定义一个函数初始化,并且run()应该测试是否定义了该函数并调用它。
我应该如何定义run()以获得对交互式名称空间中定义的“已初始化”函数的引用?
这是一种可能的方法-
在模块内部:
class MyHandler(object):
def __init__(self, *args):
""" Init stuff """
def run(self, *args):
self.initializer(*args)
"""do running stuff"""
pass
def initializer(self):
raise Exception("Initializer must be defined")
def shutdown(self):
"""default cleanup stuff"""
pass
然后,Ipython工作流程可能类似于:
from mod import MyHandler
new_handler = MyHandler()
def add_method(obj, meth):
obj.__dict__[meth.__name__] = meth.__get__(obj, obj.__class__)
def intializer(self):
print("In!")
add_method(new_handler, initializer)
new_handler.run()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.