将方法添加到内置函数

问题描述 投票:0回答:1

如何向内置函数添加方法?

例如:

将推送功能(灵感来自deque模块)添加到列表中

def push(self, element):
    self.insert(0, self)  # First way I could think of

# And adding push to built-in `list`
# Example:

class list:
    def __init__(self, iterable):
        # Do something with iterable
        self.push = push

不一定是push方法,但添加任何方法到任何内置函数。 我只是举个例子。

谢谢!

python arrays class methods built-in
1个回答
1
投票

你不能。它们在C中实现,低于您拥有控制权的级别。如果你想拥有扩展列表功能,你应该用你自己的类封装Python的列表。例如

class Dequeue:
    def __init__(self):
        self._data = []
    def push(self, x):
        self._data.insert(0, x)

查看listobject.c以获取Python列表的实现。您可以使用Ctrl-F为list_poplist_remove查看实际功能。有关详细信息,请参阅this answer

© www.soinside.com 2019 - 2024. All rights reserved.