【发布时间】:2019-06-17 03:09:51
【问题描述】:
假设我有foo.py,如下所示。
这个文件不是我创建的,所以我既不想修改也不想复制它。
换句话说,foo.py 在我安装的某个额外包中。
# foo.py
def bar():
print('This is bar')
def foo():
print('something')
bar()
print('something')
然后,我想实现 foo_as_baz() 行为为 cmets。
# baz.py
from foo import foo
def baz():
print('This is baz')
def foo_as_baz():
"""
This function is expected to behave as below
print('something')
baz()
print('something')
"""
pass
我尝试了以下一种,但由于名称范围不同,它不起作用。
def foo_as_baz():
bar = baz # I expect this `baz` affects `bar` function in `foo`
foo()
【问题讨论】:
-
看我几天前的另一个回答。看起来不同,但实际上是相同的问题。
-
根本问题与那个问题相同,但我认为这里可能存在一些关于模拟和模块属性如何工作的细微差别。
-
@JoshKarpel 我认为了解根本问题是关键。之后,您可以通过任何可能的技巧为所欲为。
-
@LiuXiMin 谢谢。如果
a显示为零,则此问题与您的问题相同。 ``` 在 [5] 中:a = np.zeros(shape=(4, 2)) 在 [6] 中:func() [666. 1.] [1. 1.] [1. 1.] [1. 1.] ```
标签: python