使用Python3,我试图调用包含is_
或has_
的类的成员。它们的返回被硬编码为True
。
以下是我实现的内容,我不知道如何使用black_magic
方法实际调用存储的成员。有人能帮忙吗?非常感谢。
import inspect
import unittest
class Foo:
def is_bar(self):
print(bar)
return True
def is_baz(self):
print(baz)
return True
class MyTest(unittest.TestCase):
def setUp(self):
self.object=Foo()
self.object_members=inspect.getmembers(self.object)
def test_assertions_when_typical(self):
self.assertEqual(True,True)
for member in self.object_members:
member_name, member_address = member
if "is_" in member_name or "has_" in member_name:
result=black_magic(member)
self.assertEqual(result,True)
if __name__=='__main__':
unittest.main()
我用调用这个
python3 -m unittest test_python_reflection_minimal_example.py
您可以使用以下在本地工作的实现:
def black_magic(self, objectClass, member):
return getattr(objectClass, member[0])()
并使用CCD_ 5进行调用。
说明:member
是一个包含方法名称和方法引用的元组。然后,我们使用这个名称并在self.object
上调用该方法。