getting the class name of a subclass

flupke flupke at nonexistingdomain.com
Wed Jul 20 10:06:57 EDT 2005


I have the following test code setup, trying to get the class name of a 
subclass in the super class. (Reason why i want this is described below)

file class_name_start.py
========================
import class_name as cn

obj = cn.B()
obj.printclass()
========================


file class_name.py
========================
class A(object):
     def __init__(self):
         print "I'm A"

     def printclass(self):
         print "Name ",__name__
         print "Class ",A.__name__

class B(A):
     def __init__(self):
         super(B,self).__init__()
         print "I'm B"
========================

Output:
I'm A
I'm B
Name  class_name
Class A

I would want the last line to be Class B
The reason i want this is since i have a number of dialogs all deriving 
from the same super class. In the superclass i have a save function and 
i thought it would be easy to get the classname and write the properties 
in a filename with the classes name as the filename.
However it turns out i get the class name of the superclass for all.
All the different dialogs are in seperate files.

Is there a way to get the name of the subclass. If not i could always 
pass a param to the init function but in my real life code i already 
have several params shipped to the init so i wanted to solve it slightly 
more elegant.

Regards,
Benedict



More information about the Python-list mailing list