擅长:python、mysql、java
<p>在这种情况下,可以使用运算符重载:</p>
<pre><code>from collections import namedtuple
class Point(namedtuple('Point', 'x y')):
__slots__ = ()
#Attached to class
def __add__(self, otherpoint):
mx = (self.x + otherpoint.x)
my = (self.y + otherpoint.y)
return Point(mx, my)
def __div__(self, scalar):
return Point(self.x/scalar, self.y/scalar)
a = Point(1.0, 2.0)
b = Point(2.0, 3.0)
def mid(a,b): # general function
return (a+b)/2
print mid(a,b)
</code></pre>
<p>我认为决定主要取决于函数的一般性和抽象性。如果您可以在实现一个小的干净接口集的所有对象上运行函数,那么就可以将它转换为一个单独的函数。你的函数依赖的接口越多,接口越具体,把它放在类上就越有意义(因为这个类的实例很可能是函数唯一可以使用的对象)。在</p>