Python3:在 __getitem__ 实现中区分 Foo[1,2] 和 Foo[(1,2)]

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)。


慕的地6264312
浏览 98回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python