提问人:Chephen 提问时间:9/22/2023 更新时间:9/22/2023 访问量:37
如何返回作为参数传入的类方法的函数名称?
How do I return the function name of a class method being passed in as an argument?
问:
我有一个类调用,它调用了一个名为类方法的类,我正在做一个练习来创建我自己的单元测试。我创建了一个如下所示的函数,因此我有一个包装函数来对我的所有类方法执行测试:bio_seq
transcribe()
unitTest()
def unitTest(func, output):
try:
assert func == output
print(f'{NAMEGOESHERE} Passed')
except AssertionError:
print(f'Test Failed for {NAMEGOESHERE}')
运行此代码将如下所示,其中实例化对象如下所示:test_dna
bio_seq
unitTest(test_dna.transcribe(), 'AUGC')
如何获取 unitTest() 函数中 transcribe() 的方法名称以传递到 {NAMEGOESHERE} f 块中?
我试过使用 ne,但这返回了.<method-wrapper '__ne__' of bio_seq object at 0x000001CA41F6F2D0>
我希望上面的返回是:“转录”
答:
0赞
Alex Hall
9/22/2023
#1
def unitTest(func, output):
try:
assert func() == output
print(f'{func.__name__} Passed')
except AssertionError:
print(f'Test Failed for {func.__name__}')
class DNA:
def transcribe(self):
return 3
test_dna = DNA()
unitTest(test_dna.transcribe, 3)
unitTest(test_dna.transcribe, 4)
评论
0赞
Chephen
9/22/2023
我了解这对常规函数的工作方式,但我正在尝试传入一个类方法,例如:.您将如何实现相同的输出?obj.foo()
0赞
Alex Hall
9/22/2023
@Chephen这是一回事,我编辑了演示。
评论
unitTest
。您正在调用一个方法并传入结果。此时,无法访问该函数。unitTest
unitTest