我想给一个类添加一个函数,它应该适用于该类中的所有对象,如果它们是以前创建的。但是我不知道已经创建的对象的名称。
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
的所有实例(无论它们在您进行此更改之前是否存在)
关于 python 3 : Adding function to a already created object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35995385/