我们可以为Python类的不同别名使用不同的_name _;属性吗?

我们可以为Python类的不同别名使用不同的_name _;属性吗?,python,alias,classname,Python,Alias,Classname,我有一个非常简单的泛型类,只包含关键字参数: class genObj(object): def __init__(self, **kwargs): for kwa in kwargs: self.__setattr__(kwa, kwargs[kwa]) 现在,我想对具有不同参数的不同对象使用它,使用别名,如下所示: rectangle = genObj rr = rectangle(width=3, height=1) circle = g

我有一个非常简单的泛型类,只包含关键字参数:

class genObj(object):
    def __init__(self, **kwargs):
        for kwa in kwargs:
            self.__setattr__(kwa, kwargs[kwa])
现在,我想对具有不同参数的不同对象使用它,使用别名,如下所示:

rectangle = genObj
rr = rectangle(width=3, height=1)

circle = genObj
cc = circle(radius=2)
它工作正常。没问题。我想让类知道它使用的别名。现在如果我问:

rr.__class__.__name__
>> "genObj"

cc.__class__.__name__
>> "genObj"
我想要的是为rr查询获取“rect”,为cc查询获取“circle”。
有可能吗?如何设置?

问题是,按照设置方式,
矩形
是同一个对象(在本例中是同一类型),因此
圆。\uuuuu名称\uuuuuuuuuuu是矩形。\uuuuuuu名称\uuuuuuuuuuuu
。在我看来,获得所需内容的最干净的方法是将
矩形
作为
genObj
的两个子类。你可以这样做:

class genBase(object):
    def __init__(self, **kwargs):
        for kwa in kwargs:
            self.__setattr__(kwa, kwargs[kwa])

def genObj(name):
    return type(name, (genBase,), {})

circle = genObj("circle")
print issubclass(circle, genBase)
# True
c = circle(r=2)
print type(c).__name__
# circle