我想通过包装器对象s.t扩展python中一些原子值的行为。当包装器不知道该做什么时,它将自己展开。 包装器应该不知道它的原子,所以任何东西都可以放进去
假设以下测试应该通过:
def test_wrapper_object_adds_functionality_on_top_of_int():
wrapper = MagicWrap(2)
assert wrapper+2 == 4
assert wrapper*2 == 4
assert wrapper**2 == 4
assert wrapper.foo() == "bar"
def test_wrapper_object_adds_functionality_on_top_of_str():
wrapper = MagicWrap("foo")
assert wrapper+"2" == "foo2"
assert wrapper*2 == "foofoo"
assert wrapper.foo() == "bar"
以上测试不检查交换性,因此这是第2级:
def test_wrapper_is_commutative_as_int():
wrapper = MagicWrap(2)
assert 2+wrapper == 4
assert 2*wrapper == 4
assert 2**wrapper == 4
assert wrapper.foo() == "bar"
def test_wrapper_is_commutative_as_str():
wrapper = MagicWrap("foo")
assert "2"+wrapper == "2foo"
assert 2*wrapper == "foofoo"
assert wrapper.foo() == "bar"
一个仅仅满足一级要求的答案仍然是有趣的
我专门使用python3
目前没有回答
相关问题 更多 >
编程相关推荐