Pythonのお勉強 Part31at TECHPythonのお勉強 Part31 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト22:デフォルトの名無しさん 09/01/03 05:18:43 j.__class__.__dict__ 23:デフォルトの名無しさん 09/01/03 07:51:16 dir inspect.getmembers 24:デフォルトの名無しさん 09/01/03 08:03:27 __class__.__dict__ にある関数はインスタンスと関連付けされてない点に注意。 a.__dict__['fuga'](j, 0) # 引数 self にあたる部分を自分で渡す必要がある 恐らくやりたいことは、dir(instance) で調べて、getattr(j, 'fuga')(0) 25:デフォルトの名無しさん 09/01/03 08:42:00 dir だと余計なメンバも混ざってくる。 __class__.__dict__だと親クラスの情報が含まれない。 メソッドのみを調べる場合は、 [name for name,boundmethod in inspect.getmembers(instance, inspect.ismethod)] メンバを含める場合は第二引数を省略。 [name for name,boundmethod in inspect.getmembers(instance) if not name.startswith('__') and not name.endswith('__')] 26:デフォルトの名無しさん 09/01/03 09:13:18 >>> j.__class__.__dict__['hoge'] 2 >>> j.__class__.__dict__['fuga'](0) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: fuga() takes exactly 2 arguments (1 given) >>> j.__class__.__dict__['fuga'](j, 0) 2 >>> j.hoge=9 >>> j.__class__.__dict__['fuga'](j, 0) 9 できました ありがとうございました もっと勉強してみます 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch