示例代码:
>>> class MyClass(object):
def __init__(self, x, y):
self.x = x
self.y = y
def power(self):
print(self.x**self.y)
def divide(self):
print(self.x/self.y)
>>> foo = MyClass(2, 3)
>>> bar = MyClass(4, 7)
>>>
>>> foo.power()
8
>>> bar.divide()
0.5714285714285714
每当我以前在 Python 中使用类时,我只是分别为每个实例运行方法(见上文)。我只是想知道是否有一种方法可以同时为该类的所有实例运行相同的方法,因为如果您有 20 个左右的实例,这可能会有点烦人。我在想这样的事情:
>>> allinstances.power()
8
16384
有没有办法做到这一点?
最佳答案
class MyClass(object):
instancelist = []
def __init__(self, x, y):
self.x = x
self.y = y
MyClass.instancelist.append(self)
def power(self):
print(self.x ** self.y)
def divide(self):
print(self.x / self.y)
foo = MyClass(2, 3)
bar = MyClass(4, 7)
[instance.power() for instance in MyClass.instancelist]
将输出:
8
16384
这样您就不需要存储在类定义之外的任何全局变量或占位符。
关于python - 有没有办法在 python 中为类的所有实例运行一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20020652/