私は、インスタンス自体が特定の値、属性、またはメソッドの戻り値を返すように、クラスのインスタンスを「呼び出す」方法を知りました。
私は例とそれが明確にしてみてください。インスタンスに直接アクセスしてクラスの属性を取得する
import numpy as np
class MyClass():
def __init__(self, x):
self.x = x
self.y = self.x*2
self.z = self.x*3
def __call_instance__(self):
return np.eye(2)*self.x
def some_function(x, y, z):
return x, y, z
inst = MyClass(3)
some_function(x=inst, y=inst.y, z=inst.z)
Out[1]:
(array([[ 3., 0.],
[ 0., 3.]]), 6, 9)
私は方法として__call__()
を定義し、inst()
でインスタンスを呼び出すことができることを知っています。しかし、特定のメソッドや特定の属性の戻り値を使用する方法はありますか?言い換えれば、インスタンス自体が自身の属性/プロパティのように動作するように? 私が探しているものを明確にすることができれば幸いです:-)
私はあなたの答えを楽しみにしています。 よろしくお願いします。ありがとうございます。
マルクス
いや、そして何を提案しているのは、これまで言語に追加される可能性はほとんどありません。 – user2357112
** ...単にカッコを付けずにインスタンスを呼び出すだけです**。それは意味をなさない。カッコを追加すると、*は*となります。 – wim
はい、わかります。私はちょうどそれを表現する他の方法を知りませんでした:-) – Markus