Python 3.x - 在将项目附加到列表之前运行函数

标签 python list class python-3.x inheritance

在 Python 3.x 中,是否可以在将项目附加到列表之前运行函数?

我有一个继承自列表的类,带有一些额外的自定义函数。我想对添加到此列表的任何元素的数据执行一系列检查。如果添加的元素不符合特定条件,列表将引发错误。

class ListWithExtraFunctions(list):

   def __beforeappend__(self):

      ... run some code ...
      ... perform checks ...
      ... raise error if checks fail ...

最佳答案

定义 ListWithExtraFunctions.append 并在 value 通过所有检查时调用 super().append(value):

class ListWithExtraFunctions(list):
    def append(self, value):
        if okay():
            return super().append(value)
        else:
            raise NotOkay()

关于Python 3.x - 在将项目附加到列表之前运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35117067/

相关文章:

javascript - 当前与 JS ES6 的事件链接

python - 我的流程发生了什么?

php - 如何在php上运行python?

c++ - 将大型成员对象移出类?

python - 如何知道命令或方法是否为 'in place algorithm'?

linux - 循环直到在列表中选择

C++ 友元函数不起作用

python - 版本控制的 Tensorflow textsum 错误

python - 无法导入随机python

java - 将数组对象添加到列表