付録B 組み込み関数 getattr/setattr
‖記事一覧‖
C#.use(better, IronPython=WPF)
組み込み関数 getattr/setattr
getattr
組み込み関数 getattr は、指定した属性値を獲得します。
>>> help(getattr)
Help on built-in function getattr in module __builtin__:getattr(...)
getattr(object, name[, default]) -> value
Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y.
When a default argument is given, it is returned when the attribute doesn't
exist; without it, an exception is raised in that case.
次の表現は、どちらも同じ結果となります。
Brushes.Red
getattr(Brushes, "Red")
関数 getattr を使って、クラス属性 Brushes.Red を参照します。ここでは、クラス Brushes を対象に、引数 "Red" と同じ名前の属性値を獲得します。
# getattr.py
for e in "Red", "Green", "Blue":
child = Ellipse(Width=50, Height=50)
setattr(child, "Fill", getattr(Brushes, e))
parent.Children.Add(child)
ここでは、Brushes.Red/Brushes.Green/Brushes.Blue の色で描かれた円が順に配置されます。
《参照》setattr も参照してください。□
setattr
組み込み関数 setattr は、指定した属性値を設定します。
>>> help(setattr)
Help on built-in function setattr in module __builtin__:
setattr(...)
setattr(object, name, value)
Set a named attribute on an object; setattr(x, 'y', v) is equivalent to
``x.y = v''.
次の表現は、どちらも同じ結果となります。
child.Fill = Brushes.Red
setattr(child, "Fill", Brushes.Red)
関数 setattr を使って、インスタンス属性 child.Fill に値を設定します。ここでは、インスタンス child を対象に、引数 "Fill" と同じ名前の属性に値を設定します。
# setattr.py
for e in "Red", "Green", "Blue":
child = Ellipse(Width=50, Height=50)
setattr(child, "Fill", getattr(Brushes, e))
parent.Children.Add(child)
ここでは、Brushes.Red/Brushes.Green/Brushes.Blue の色で描かれた円が順に配置されます。
《参照》getattr も参照してください。□
》こちらに移動中です《
↑TOP
関連記事
- Python への扉
- Python.use(better, src=IronPython) # ソースコードの歩き方
- INDEX《Python》getattr
- INDEX《Python》setattr