クラス__init__
の代わりに使用すると、いくつかのことが機能しません。init__
この2つの違いは何なのか、ただただ興味があります。
これがクラスの一部です。しかし、それは で機能し、 では機能しないため、実際には問題でinit__
はありません__init__
。タイプミスだったということは理解しています。
class Point(namedtuple('Point', 'x, y, z')):
'class of a point as a tuple array'
__slots__ = () # prevent creation of instance dictionaries to save memory
def init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __del__(self):
'delete the Point'
def __repr__(self):
'Return a nicely formatted representation string'
return '[%r, %r, %r]' % (self)
def __str__(self):
'printing format'
return '%s[%r, %r, %r]' % (self.__class__.__name__,
self.x, self.y, self.z)
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Point(self.x - other.x, self.y - other.y, self.z - other.z)
def __mul__(self, scal):
'multiplication ny scalar'
return Point(self.x * scal, self.y * scal, self.z * scal)
def __div__(self, scal):
'division ny scalar'
if scal != 0.0:
return Point(self.x / scal, self.y / scal, self.z / scal)
else:
sys.exit('Division by zero!')
私の質問は、「オブジェクトを 2 つの異なる方法でインスタンス化する方法は?」というものでした。このようにして、完全に機能します。
これをどう説明する?