私は使用しているソフトウェアのAPIを使用してスクリプトを作成しています。利用可能なメソッドのドキュメントが不足しているため、私が持つものをほとんど制御できません。私はオブジェクトの中に任意に深く埋め込むことができる変数を呼び出すことを探しています。私は手前の深さを知っていますが、それは広範囲にわたります。任意の深いpythonオブジェクトを呼び出す方法は?
例:
index = ['foo','bar']
object['foo']['bar'].method()
私が何かしようとしました:
temp = object[index[0]]
for ind in index[1:]:
temp = temp[ind]
temp.method()
をしかし、このは、オブジェクトのコピー(それが回答によると、私が得ているしません)を行いますメソッドを正しく適用しません。インデックスは任意に長くすることができます。
私の唯一の作業溶液を使用してこれをハードコーディングすることです:
if lengthIndex == 1:
object[index[0]].method()
if lengthIndex == 2:
object[index[0]][index[1]].method()
if lengthIndex == 3:
object[index[0]][index[1]][index[2]].method()
# and so on ...
これをコーディングする適切な方法は何ですか?
これはコピーを作成しません。 – o11c
少なくとも、私はこれを試したときに.delete()メソッドを適用しませんでした。私はもう一度何かが間違っていたかどうかを調べるつもりです。 – Michele87
あなたが話すこの 'delete()'メソッドは何ですか?ファイナライザ '__del __()'についてあなたが話しているのであれば、それは予想されます。オブジェクトがコピーされているとの結論にいたるまで、私はあなたがどのようになっているのかはっきりしていませんが... –