Python クラスあれこれ

>>> class TestClass:
	def Func1(self):
		print "TestClass.Func1"

		
>>> ClassCopy = TestClass
>>> ClassCopy().Func1()
TestClass.Func1

>>> Instance = TestClass()
>>> Instance.Func1()
TestClass.Func1

>>> Instance2 = TestClass().Func1()
TestClass.Func1

>>> Instance2 = TestClass().Func1
>>> Instance2()
TestClass.Func1

>>> ClassCopy.__dict__
{'__module__': '__main__', 'Func1': <function Func1 at 0x00CB25F0>, 
'__doc__': None}

>>> ClassCopy.__dict__['Func1']
<function Func1 at 0x00CB25F0>

>>> ClassCopy.__dict__['Func1'](ClassCopy())
TestClass.Func1

>>> Instance.__class__.__dict__['Func1'](Instance)
TestClass.Func1
>>> 

クラスあれこれ

>>> import traceback
>>> class TestClass:
   def Func2(self):
    print self.__class__.__name__, traceback.extract_stack()[-1][2]

>>> Instance = TestClass()
>>> Instance.Func2()
TestClass Func2
>>> 

クラス名と関数名を表示する関数