我想通过包装对象s.t扩展python中某些原子值的行为。当包装器不知道该怎么做时,它将自行解包。 包装器应该是不可知的,所以任何东西都可以放入其中。
让我们通过以下测试:
logicalPoints4
以上测试不检查可交换性,所以这是2级:
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"
仅满足1级要求的答案仍然很有趣。
我专门使用python 3。