Python 3 中是否有可能区分项目查找 Foo[(1,2)] 和 Foo[1,2]?自从在
class Foo:
def __getitem__(self, key):
print(type(key), key)
foo = Foo()
foo[(1,2)]
foo[1,2]
两者产生相同的输出。
<class 'tuple'> (1, 2)
编辑:为什么我想要这样:我有一组“参数化”的类,我想为这些类实现一个工厂。例如__call__(*arg),使用从中推断出的参数实例化类,*arg并__getitem__返回具有通过键传递的参数的类。
我希望__getitem__可以使用类似__call__的,你可以区分的方式foo[(1,2)]从foo[1,2]类似你能辨别的方式foo((1,2))从foo(1,2)。
相关分类