获取当前课程的名称?

我如何获得我目前所在班级的名字?

例:

def get_input(class_name):
    [do things]
    return class_name_result

class foo():
    input = get_input([class name goes here])

由于程序的性质,我与(vistrails)接口,我不能使用__init__()来初始化input


obj.__class__.__name__将为您提供任何对象名称,因此您可以执行此操作:

class Clazz():
    def getName(self):
        return self.__class__.__name__

用法:

>>> c = Clazz()
>>> c.getName()
'Clazz'

在类的主体中,类名尚未定义,因此它不可用。 你不能简单地输入班级的名字吗? 也许你需要更多地说出这个问题,以便我们为你找到解决方案。

我会创建一个元类来为你做这个工作。 它在创建类的时候被调用(概念上在类的最后部分),并且可以操作正在创建的类。 我没有测试过这个:

class InputAssigningMetaclass(type):
    def __new__(cls, name, bases, attrs):
        cls.input = get_input(name)
        return super(MyType, cls).__new__(cls, name, bases, newattrs)

class MyBaseFoo(object):
    __metaclass__ = InputAssigningMetaclass

class foo(MyBaseFoo):
    # etc, no need to create 'input'

class foo2(MyBaseFoo):
    # etc, no need to create 'input'

你可以通过类的私有属性访问它:

cls_name = self.__class__.__name__

编辑:

正如Ned Batcheler ,这不会在班级体内工作,但它会在一种方法中。

链接地址: http://www.djcxy.com/p/40943.html

上一篇: Get name of current class?

下一篇: print list in proper way python