Abcクラスのインスタンスをdict値としてキーとして番号を付けて保存しました。次に、dictキーを使用してインスタンスを見つけ、そのインスタンスの関数 'here'を呼び出したいとします。 (MS勝利7上のPython 3.2)コード:メソッド呼び出しのクラスインスタンスとしてのDict値
class Abc():
def __init__ (self, num):
self.num = num
print ('Starting sess no - ', self.num)
def here (self):
print ('Here - ', self.num)
def main():
sess = dict ((i, Abc(i)) for i in range (3))
for i in range (7):
print ('Go to Sess - key: ', i % 3, ' value: ', sess [i % 3])
try:
sess [i % 3].here
except:
raise KeyError ('Problem with key')
この出力を生成する:
Starting sess no - 0
Starting sess no - 1
Starting sess no - 2
Go to Sess - key: 0 value: <__main__.Abc object at 0x00C193B0>
Go to Sess - key: 1 value: <__main__.Abc object at 0x00C19510>
Go to Sess - key: 2 value: <__main__.Abc object at 0x00C19530>
Go to Sess - key: 0 value: <__main__.Abc object at 0x00C193B0>
Go to Sess - key: 1 value: <__main__.Abc object at 0x00C19510>
Go to Sess - key: 2 value: <__main__.Abc object at 0x00C19530>
Go to Sess - key: 0 value: <__main__.Abc object at 0x00C193B0>
Abc.hereは任意のインスタンスに対して実行されていません。これは実行可能ですか?もしそうなら、どんなコードが必要ですか?
書式設定(?)によるインデント - 元のコードでは表示されませんでした。そしてここで()働いた。 – steve
私はあなたのポストにそれを修正しました。 – Amber