是否有可能获得子类的名称?例如:
class Foo:
def bar(self):
print type(self)
class SubFoo(Foo):
pass
SubFoo().bar()
将打印:< type 'instance' >
我在找一个能找到"SubFoo"
的方法。
我知道你可以做isinstance
,但是我事先不知道类的名字,所以这对我不起作用。
发布于 2010-07-23 09:04:47
#!/usr/bin/python
class Foo(object):
def bar(self):
print type(self)
class SubFoo(Foo):
pass
SubFoo().bar()
从object
派生的子类化为您提供了新样式的类(这些类不再是那么新了--Python2.2!)任何时候,如果你想使用self属性,如果你从object中子类,你会得到更多的东西。Python的文档... new style classes。在历史上,Python为了向后兼容而离开了老式的方式Foo()
。但是,这是很久以前的事了。再也没有什么理由不从object中子类了。
发布于 2010-07-23 08:54:51
您可以使用
SubFoo().__class__.__name__
这可能是离题的,因为它给出了一个类名:)
发布于 2010-07-23 08:52:04
当您使用新样式的类时,它会工作得更好。
class Foo(object):
....
https://stackoverflow.com/questions/3314627
复制相似问题