Jea*_*vel 28 python reflection static-methods function-call
如果我定义:
class Bar(object):
@staticmethod
def bar():
# code
pass
class Foo(Bar):
# code
pass
Run Code Online (Sandbox Code Playgroud)
函数调用Foo.bar()是否可以确定类名Foo?
Dav*_*rby 34
用classmethod替换static方法.这将在调用时传递给类,因此您可以从中获取类名.
class Bar(object):
@classmethod
def bar(cls):
# code
print cls.__name__
class Foo(Bar):
# code
pass
>>> Bar.bar()
Bar
>>> Foo.bar()
Foo
Run Code Online (Sandbox Code Playgroud)