Pythonのsetattr()関数とは?オブジェクトの属性を設定する方法と実行例
Pythonには、オブジェクトの属性(アトリビュート)に動的に値を設定するための組み込み関数 setattr() が用意されています。この記事では、setattr() の基本的な使い方から実際のコード例まで、わかりやすく解説します。
setattr()メソッドとは
setattr() メソッドは、指定したオブジェクトの特定の属性に対して、新しい値を設定するために使用します。通常は「オブジェクト名.属性名 = 値」という形式で属性を設定しますが、属性名を実行時に動的に決めたい場合など、setattr() を使うと柔軟な処理が可能になります。
構文
setattr() メソッドの基本構文は以下のとおりです。
setattr(object, name, value)
setattr() メソッドは3つの引数を受け取ります。
- object:値を設定する対象のオブジェクト
- name:設定する属性名(文字列で指定)
- value:その属性に代入する値
setattr() メソッドの戻り値は None です。つまり、このメソッドは値を返さず、単にオブジェクトの属性を更新する副作用を持つだけです。
使用例
以下の例では、Male クラスのインスタンスが持つ name 属性を、setattr() を使って変更しています。
class Male:
name = 'Abel'
x = Male()
print('変更前:', x.name)
# name 属性を 'Jason' に設定
setattr(x, 'name', 'Jason')
print('変更後:', x.name)
出力結果
上記のコードを実行すると、次のような出力が得られます。
変更前: Abel 変更後: Jason
このように、setattr() を使うことで、ドット記法を使わずに属性の値を変更できることが確認できます。属性名を変数として扱いたい場合や、ループ処理の中で複数の属性をまとめて設定したい場合に特に便利です。
-
Pythonの名前空間とは?仕組みとスコープの関係をわかりやすく解説
Pythonにおける名前空間の基本名前空間(namespace)とは、変数名とオブジェクトを対応付ける仕組みであり、スコープ(名前の有効範囲)を実現するための基盤となるものです。Pythonでは、パッケージ、モジュール、クラス、関数、メソッドなど、それぞれが独自の「名前空間」を持ち、その中で変数名が解決されます。名前空間の生成と破棄関数やモジュール、パッケージが評価されて実行が始まると、そのための新しい名前空間が作成されます。これは「評価コンテキスト」と捉えると理解しやすいでしょう。そして、関数などの実行が終了すると、その名前空間は破棄され、そこに含まれていた変数も一緒に消えます。さらに、ロー
-
Pythonの「%」演算子とは?文字列フォーマットの基本と使い方を解説
Pythonの「%」演算子の役割 Pythonにおける「%(パーセント)」は、文字列フォーマット演算子(補間演算子)として機能します。「format % values」という形式で記述すると、フォーマット文字列内の変換指定子が、values側の要素によって置き換えられます。この仕組みは、C言語のsprintf()関数とよく似ています。 基本的な使い方:文字列の埋め込み 最もシンプルな例は、文字列の中に変数の値を埋め込むケースです。 >>> lang = Python >>> print %s is awesome! % lang Python is awe