是否有可能获得子类的名称?例如:
class Foo:
def bar(self):
print type(self)
class SubFoo(Foo):
pass
SubFoo().bar()
Run Code Online (Sandbox Code Playgroud)
将打印: < type 'instance' >
我正在寻找一种方法"SubFoo".
我知道你可以这样做isinstance,但我不知道该课程的名称是先验的,所以这对我不起作用.
myk*_*hal 15
您可以使用
SubFoo().__class__.__name__
Run Code Online (Sandbox Code Playgroud)
这可能是偏离主题的,因为它给你一个类名:)
#!/usr/bin/python
class Foo(object):
def bar(self):
print type(self)
class SubFoo(Foo):
pass
SubFoo().bar()
Run Code Online (Sandbox Code Playgroud)
子类化为object你提供了新风格的类(不再那么新了 - python 2.2!)无论何时你想要使用self属性,如果从对象继承,你将获得更多的帮助.Python的文档...... 新的样式类.从历史上看,Python Foo()为了向后兼容而采用旧式方式.但是,这是很久以前的事了.没有太多理由不从对象继承.