创建一个被视为列表但具有更多功能的python类?

Chi*_*nex 3 python inheritance numpy list

我有一个名为dataList的类.它基本上是一个包含一些元数据的列表---myDataList.data包含(numpy)列表本身,myDataList.tag包含描述等.我希望能够使myDataList [42]返回myDataList的相应元素.数据,我想让Numpy等将它识别为一个列表(IE,numpy.asarray(myDataList)返回一个包含myDataList中数据的numpy数组).在Java中,这就像将dataList声明为实现List接口一样简单,然后只定义必要的函数.你会怎么用Python做到这一点?

谢谢.

jen*_*ena 8

您可以子类列表并提供其他方法:

class CustomList(list):
    def __init__(self, *args, **kwargs):
        list.__init__(self, args[0])

    def foobar(self):
        return 'foobar'
Run Code Online (Sandbox Code Playgroud)

CustomList继承了Python普通列表的方法,您可以轻松地让它实现更多的方法和/或属性.