描画プログラム(Pythonでpygameを使用して記述)のユーザーが選択したオブジェクトの名前を変更できるようにし、ライブインタープリターを介してそれらのオブジェクトに名前でアクセスできるようにしようとしています。以下は、すべての描画可能なオブジェクトの基本クラスのメソッドです。このコードを実行してもエラーは発生しませんが、新しい名前でオブジェクトにアクセスしようとすると、その名前の変数が定義されていないと言われます。なぜこれが起こるのか、何か考えはありますか?
def rename(self,newName):
"""
Gives this drawable a new name by which the user my reference it in
code
"""
#Create a new variable in the global scope
command = 'global ' + newName + '\n'
#Tie it to me
command += newName + ' = self' + '\n'
#If I already had a name, I'll remove this reference
if self.name != None:
command += 'del ' + self.name
#Execute the command
exec(command)
#Make this adjustment internally
self.name = newName