标识运行代码的类

2024-06-16 10:58:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,有人能告诉我,在标记为#whereami(第3行)的行中,我如何识别我现在在类Person中,而不是在实例化的程序员对象中。你知道吗

理想情况下,我想要一个类/类型对象,但如果不能返回,类名“Person”就可以了。你知道吗

class Person(object):
    def opinion(self):
        #whereami
        print "Time for a cup of tea"

class Programmer(Person):
    def opinion(self):
        super(Programmer, self).opinion()
        print "There is no spoon"

if '__name__' == '__main__':
    programmer = Programmer()
    programmer.opinion()

Tags: 对象实例代码标记selfdefclass程序员
2条回答

使用

type('object')

请参见下面使用Python3.2的示例

class Person(object):
    def opinion(self):
        print(type(self))
        print ("Time for a cup of tea")

class Programmer(Person):
    def opinion(self):
        super(Programmer, self).opinion()
        print ("There is no spoon")

if '__name__' == '__main__':
    programmer = Programmer()
    programmer.opinion()

p = Person()
p.opinion()
print('\n')
pg = Programmer()
pg.opinion()

结果

<class '__main__.Person'>
Time for a cup of tea


<class '__main__.Programmer'>
Time for a cup of tea
There is no spoon

可以看出第一个结果是由“Person”类调用的。你知道吗

尝试插入以下行

className=self.__class__.__name__

className变量将当前类名的值作为字符串

相关问题 更多 >