【发布时间】:2010-10-13 21:08:10
【问题描述】:
是否可以在 Python 中重载 from/import 语句?
例如,假设jvm_object是类JVM的一个实例,是否可以写成这样的代码:
class JVM(object):
def import_func(self, cls):
return something...
jvm = JVM()
# would invoke JVM.import_func
from jvm import Foo
【问题讨论】:
-
@S.Lott 本质上,我想从远程 JVM(在 Python 程序中)导入包和类,虽然我可以提供导入方法,但我想重用 Python 语法。跨度>
-
“从远程 JVM 导入包和类”?不是文件?这将如何运作?您将如何管理 .pyc 文件的创建? “文件”有什么问题?他们工作得很好。远程挂载文件系统有什么问题?效果很好。
-
@S.Lott 无需在评论中提出 6 个问题。我为我正在从事的 Py4J 项目提出了这个问题:py4j.sourceforge.net
-
为什么每个人都希望提问者不知道他在说什么?两个答案和一个评论让他更聪明。如果你们都认为导入钩子是一个愚蠢的想法,为什么你们不都接受 PEP 302 和那里的 Python 开发人员呢?
-
@Muhammad Alkarouri 也许我不够清楚。我的意思是从任意远程网站实际导入模块的“建议使用”,这是我链接到的代码的作者也给出的警告。但是,它是如何自定义导入过程(具有各种“严重”用途)的一个很好的例子,所以我链接到它。我绝不是要贬低 OP。
标签: python import operator-overloading