Standart numpy dizileriyle birlikte çalışabilen bir dizi benzeri nesne uyguluyorum.Sol taraftaki ikili operatör için sayısal zorlama sorunu
class MyArray(object):
def __rmul__(self, other):
return MyArray() # value not important for current purpose
from numpy import array
print array([1,2,3]) * MyArray()
Bu aşağıdaki çıktıyı verir: Ben sadece aşağıdaki şekilde daralır sinir bozucu bir problem isabet ziyade ben umduğu gibi MyArray().__rmul__(array([1,2,3]))
çağırmaktan daha Açıkça
[<__main__.MyArray instance at 0x91903ec>
<__main__.MyArray instance at 0x919038c>
<__main__.MyArray instance at 0x919042c>]
, __rmul__
her birey için çağrılır dizinin öğesi ve sonuç bir nesne dizisine sarılır. Bu bana python'un coercion rules ile uyumlu değil. Daha da önemlisi, sol çoğalmamı işe yaramaz hale getiriyor.
Bu konuda bir yol biliyor mu?