【发布时间】:2014-04-26 04:03:16
【问题描述】:
运行这个文件foo.py
import inspect
class Parent(object):
def source1(self):
class A(object):
def foo(self):
pass
print inspect.getsource(A)
def source2(self):
class A(object):
def bar(self, a, b, c):
pass
print inspect.getsource(A)
parent = Parent()
parent.source1()
parent.source2()
产生这个输出:
class A(object):
def foo(self):
pass
class A(object):
def foo(self):
pass
当我期望它产生这个输出时:
class A(object):
def foo(self):
pass
class A(object):
def bar(self, a, b, c):
pass
我在测试中遇到了这个问题。我在测试方法的主体中重用名称A 和B 作为类名。我正在测试一个依赖于inspect.getsource 的函数,而且……它不起作用,因为后来的测试是从早先命名的A 和B 类中获得的源代码。
【问题讨论】:
标签: python introspection inspect