如果我定义:如何从Python中的静态方法获取(子)类名?
class Bar(object):
@staticmethod
def bar():
# code
pass
class Foo(Bar):
# code
pass
是否有可能为一个函数调用Foo.bar()来确定类名富?
如果我定义:如何从Python中的静态方法获取(子)类名?
class Bar(object):
@staticmethod
def bar():
# code
pass
class Foo(Bar):
# code
pass
是否有可能为一个函数调用Foo.bar()来确定类名富?
用classmethod替换static方法。当它被调用时,这个类将被传递,所以你可以从中获得类名。
class Bar(object):
@classmethod
def bar(cls):
# code
print cls.__name__
class Foo(Bar):
# code
pass
>>> Bar.bar()
Bar
>>> Foo.bar()
Foo
如果您需要查找班级信息,适当的方法是使用@classmethod
。现在
class Bar(object):
@classmethod
def bar(cls):
# code
print(cls.__name__)
class Foo(Bar):
# code
pass
您bar
方法以班级为cls
这是实际的类调用者的参考。如代码所示,cls.__name__
是您正在查找的课程的名称。
>>> Foo.bar()
Foo
>>> Bar.bar()
Bar
已经回答了,不过谢谢! – 2010-08-29 21:35:24
非常感谢戴夫! – 2010-08-29 21:31:05
这不回答问题。问题是如何用静态方法来做到这一点。 – sebix 2016-11-10 21:57:11