Skip to main content
 首页 » 编程设计

python 3 : Adding function to a already created object

2025年05月04日27kevingrace

我想给一个类添加一个函数,它应该适用于该类中的所有对象,如果它们是以前创建的。但是我不知道已经创建的对象的名称。

class Dog(object): 
"""This is a simple test""" 
i = 1234 
def f(self): 
    return 'hello world' 

如果我想为类 Dog 实现一个函数 bark 并且已经创建的 Dogs 可以“使用”这个函数,我该怎么做?

之前在网上搜索发现

a = Dog() 
a.bark = types.MethodType(...) 

但我不能使用它,因为我不知道对象的名称。也许您可以通过某种方式从类中找出对象的名称。

你能帮帮我吗?

谢谢!无抗体

请您参考如下方法:

你是对的,a.bark 修改了 Dog 的特定实例,而不是类本身。

如果你想修改 Dog 类,那么你应该找到谈论这个类的变量。幸运的是,该变量以类本身的名称方便地命名(就像 python 中的任何类一样),因此可以使用变量名 Dog 进行访问。

所以,如果你这样做

Dog.bark = types.MethodType(...) 

这将更改 Dog 类,使 bark 可用于 Dog 的所有实例(无论它们在您进行此更改之前是否存在)