付録B 組み込み関数 getattr/setattr

記事一覧

C#.use(better, IronPython=WPF)
組み込み関数 getattr/setattr

《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2000/05/23 ● 第2版♪2003/01/29 ● 第3版♪2007/05/12

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


関連記事

Last updated♪2009/10/12