gpt4 book ai didi

python 3 : Adding function to a already created object

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:22 24 4
gpt4 key购买 nike

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

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com