【发布时间】:2021-02-25 03:49:12
【问题描述】:
我是 Python 新手,我正在尝试找到一种方法来将新方法添加到 Python 中预先存在的类中。例如,将.print() 方法添加到列表类中。
我知道我可以创建一个继承列表类的新类并像这样添加这个方法:
import builtins
class list(list):
def print(self):
builtins.print(self)
但这不会修改预先存在的“列表”类。我可以做这样的作业:trial_list = list([3,4,6]),但不能这样:trial_list = [3,4,6].
另外,除了dir()和help()之外,还有没有办法查看list类的实际内容?
【问题讨论】:
-
你不能使用内置类型来做到这一点,因为它们是以一种特殊的方式实现的(它们的工作方式是如此基础,以至于用原生 Python 代码表达没有意义)。对于其他类,您可以在不继承的情况下对其进行修改,但这通常是个坏主意。如果你想查找它,它被称为“猴子补丁”,很容易在网络上搜索。
-
谢谢,还有一种方法可以按照定义的方式查看预定义类中的方法。比如有没有办法查看list类的init方法?
-
Frank Yellin,我查看了您提供的链接,并尝试将 .print() 方法添加到列表类的实例中,但它仍然不起作用。
标签: python python-3.x list class inheritance