<Python> getattr
組み込み関数 getattr
。
オブジェクト object
を第1引数、
アトリビュート attribute
を第2引数にして、値をゲットする。
アトリビュートを.
で指定するのと何が違ってメリットがあるのかと思っていたら、
第2引数を変数にできるのがうれしいっぽい。
例。
In [1]: class Aaa(): ...: def __init__(self): ...: self.x = 1 ...: self.y = 2 ...: def show_x(self): ...: return self.x ...: def show_y(self): ...: return self.y ...: In [2]: A = Aaa() In [3]: getattr(A, 'show_x') Out[3]: <bound method Aaa.show_x of <__main__.Aaa object at 0x000001B36A8AE748>> In [4]: getattr(A, 'show_x')() Out[4]: 1 In [5]: getattr(A, 'show_y')() Out[5]: 2
で、show_x
を変数にする。
In [7]: a = 'show_x' In [8]: getattr(A, a)() Out[8]: 1
なるへそ。
マニュアル。