擅长:python、mysql、java
<p>我想详细介绍一下Justin的OO解决方案:</p>
<p><code>def mean (self)</code>的问题是每次访问它时都会重新计算它。您可能希望将此属性设置为惰性,即在首次访问时计算它,并将其存储以供将来参考。你知道吗</p>
<p>像这样:</p>
<pre><code>class PairObject:
def __init__(self, part1, part2):
self._pair = (part1, part2)
self._mean = None
@property
def pair(self):
return self._pair
@property
def mean(self):
if self._mean == None: self._mean = np.mean(self._pair)
#explicit test for None, as e.g. a mean of 0 also is falsy
return self._mean
# Then use it like this:
pairs = [PairObject ([2, 3, 4], [5, 6, 7]),
PairObject ([9, 10, 11], [12, 13, 14]),
PairObject ([12, 20, 30], [17, 8, 30]) ]
for p in pairs:
print p.pair
print p.mean
</code></pre>