2013-02-03 9 views
6

変数と方法でPythonオブジェクトのプロパティ/メソッドにアクセスできますか?変数でドット表記のオブジェクトプロパティを指定する

例:私は変数に事前方法を捕捉した後、ドット表記でそれを使用して、「GET」部分を交換したい

handler.request.GET.add() 

method = handler.method 
handler.request.{method}.add() 

私はちょうどそれを行う方法がわかりません。

+0

を行うことができ、何を_really_欲しいのは関数やメソッドに 'dict'マッピング名です。 (これは他の多くの言語よりもPythonで簡単なので、それはずっと頻繁に適切です。) – abarnert

答えて

9

を行うような何かを行うことができます。

だから、あなたはあなたがこれを必要だと思うときには、その多くの場合(常にではないが、多くの場合)は注目に値します

method = "GET" 
getattr(handler.request, method).add() 
+1

Typo: 'getattr(handler.request、method).add()'にする必要があります。 – zeantsoi

5

動的属性にアクセスするためにgetattr() functionを使用します。

method = 'GET' 
getattr(handler.request, method).add() 

handler.request.GET.add()とまったく同じことをするだろう。

getattr(handler.request, 'GET')handler.request.GETと同じです:

2

あなたは

getattr(handler.request, "GET").add() 

getattrは、それからちょうどあなたがgetattrを探している

method = "GET" # or "POST" 
getattr(handler.request, method).add() 
関連する問題