我正在寻找一种将函数应用于类的所有实例的方法。举个例子:将函数应用于类的所有实例
class my_class:
def __init__(self, number):
self.my_value = number
self.double = number * 2
@staticmethod
def crunch_all():
# pseudocode starts here
for instances in my_class:
instance.new_value = instance.my_value + 1
所以命令my_class.crunch_all()
应该添加一个新的属性new_value
所有现有实例。我猜我必须使用@staticmethod
才能使其成为“全球”功能。
我知道我可以继续正在通过my_class.instances
在__init__
添加类似my_class.instances.append(number)
然后循环定义的情况下的轨道,但我至今没有运气用,要么。此外,我想知道是否有更通用的存在。这甚至有可能吗?
它应该是'@ classmethod',而不是'@ staticmethod'。是的,你必须跟踪类属性中的所有类的实例。 – jonrsharpe 2014-10-11 14:17:54