09/01/03 09:31:48
>>> class b(a):
... hige=3
... def fuga(self, x):
... return self.hoge + x
>>> class a:
... hoge=2
... def hage(self, x):
... self.hoge=x
>>> aa=a()
>>> bb=b()
>>> aa.__class__.__dict__
{'__module__': '__main__', '__doc__': None, 'hage': <function hage at 0x00930D70>, 'hoge': 2}
>>> bb.__class__.__dict__
{'__module__': '__main__', 'fuga': <function fuga at 0x00930D30>, 'hige': 3, '__doc__': None}
>>> dir(aa)
['__doc__', '__module__', 'hage', 'hoge']
>>> dir(bb)
['__doc__', '__module__', 'fuga', 'hage', 'hige', 'hoge']
>>> import inspect
>>> inspect.getmembers(aa)
[('__doc__', None), ('__module__', '__main__'), ('hage', <bound method a.hage of <__main__.a instance at 0x00934738>>), ('hoge', 2)]
>>> inspect.getmembers(bb)
[('__doc__', None), ('__module__', '__main__'), ('fuga', <bound method b.fuga of <__main__.b instance at 0x009347B0>>), ('hage', <bound method b.hage of <__main__.b instance at 0x009347B0>>), ('hige', 3), ('hoge', 2)]
>>> [name for name,boundmethod in inspect.getmembers(aa, inspect.ismethod)]
['hage']
>>> [name for name,boundmethod in inspect.getmembers(bb, inspect.ismethod)]
['fuga', 'hage']
>>> [name for name,boundmethod in inspect.getmembers(aa) if not name.startswith('__') and not name.endswith('__')]
['hage', 'hoge']
>>> [name for name,boundmethod in inspect.getmembers(bb) if not name.startswith('__') and not name.endswith('__')]
['fuga', 'hage', 'hige', 'hoge']