我正在寻找一种方法将几个python文件移动到一个文件中,例如
而不是两个文件
foobartest.py
from foo import *
bar()
foo.py def bar()
return 'foobar'
做这样的事情:
class foo():
def bar()
#insert some way to get the class into the namespace
bar()
有没有办法将本地定义的类放入同一脚本的根名称空间?
原因是我想要合并多个文件而不必更改对foo.bar()的所有bar()调用,并且对于阅读代码的人来说它们是如何分解的还是相对明显的。
编辑:为了清晰起见,我一直在寻找一种方法来为类中的所有函数执行此操作,而不是为每个函数单独执行。就像在课堂上进行疯狂导入一样。
答案 0 :(得分:2)
如果foo.bar()
是staticmethod或classmethod,您可以在合并文件的顶部设置bar = foo.bar
。例如:
class foo:
@staticmethod
def bar():
# ...
bar = foo.bar
bar() # calls foo.bar()
答案 1 :(得分:1)
听起来超级hacky,但你可以做类似
的事情>>> class A:
def x():
pass
def y():
pass
>>> globals().update(A.__dict__)
>>> x
<function x at 0x02AF1CB0>
>>> y
<function y at 0x022D8230>
>>>