在下面的代码中,有人可以告诉我,在标记为#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()
答案 0 :(得分:1)
尝试插入以下行
className=self.__class__.__name__
className变量将当前类名的值作为字符串
答案 1 :(得分: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
你可以告诉第一个结果是由“人”类调用的。