1

在下面的代码中,有人可以告诉我,在标记的行#whereami(第 3 行),我如何确定我现在在类 Person 中,而不是在实例化的 Programmer 对象中。

理想情况下,我想要一个类/类型对象,但如果无法返回类名“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()
4

2 回答 2

1

尝试插入以下行

className=self.__class__.__name__

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

于 2013-03-05T12:36:14.287 回答
0

采用

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”类调用的。

于 2013-03-05T12:34:42.377 回答