Wie eine Klasse zu machen, ein Objekt in der folgenden Art und Weise zurück:Wie kann eine Klasse ein Objekt zurückgeben, wenn nach der Initialisierung auf die Klasse verwiesen wird?
import numpy as np
a = np.array([(1,2),(3,4)])
Wenn a
verwiesen wird, gibt es
array([[1, 2],
[3, 4]])
Allerdings, wenn ich eine einfache Klasse erstellen:
class Example:
def __init__(self, data):
self.nparray = np.array(data)
Und run b = Example([(1,2),(3,4)])
dann Referenz b
Ich bekomme: <__main__.Example at 0x7f17381099e8>
. Um den Wert zurückzugeben, muss ich b.nparray
ausführen.
Wie die Klasse Example
Rückkehr machen
array([[1, 2],
[3, 4]])
wenn b
verwiesen wird?
Ich versuchte mit Methoden wie __new__
, __repr__
und __getitem__
jedoch keine das gewünschte Verhalten produziert.
_ "Immer wenn' a' aufgerufen wird, gibt es zurück ... "_Huh? Es gibt das nicht auf meiner Maschine zurück. Wenn ich Ihren ersten Codeblock ausführe und dann 'a()' tue, bekomme ich 'TypeError: 'numpy.darray' -Objekt ist nicht aufrufbar'. – Kevin
Dafür gibt es keine Klassen oder was "Call" bedeutet. – user2357112
Ich verstehe nicht, warum Leute abwerten - OP ist nur in der Terminologie verwirrt. ** Calling ** bedeutet das: 'a()', aber wenn du sagst, dass du "a" "anrufst", meinst du, du referenzierst nur "a". –