Imitating a static method
This question already has an answer here:
You should use @classmethod
:
@classmethod
def show(cls, message):
print("The message is: {}".format(message))
The difference between a classmethod
and a staticmethod
is that the latter knows nothing about its enclosing class, whereas the former does (via the cls
argument). A staticmethod
can just as easily be declared outside the class.
If you don't want show()
to know anything about C
, either use @staticmethod
or declare show()
outside of C
.
The idiomatic translation of a static method from other languages is usually a module-level method.
def show(message):
print("The message is: {}".format(message))
The answers telling you that python has @staticmethod
s are correct, and also misleading: it is usually correct to just use a module-level function.
你应该使用@staticmethod
:
@staticmethod
def show(message):
print("The message is: {}".format(message))
链接地址: http://www.djcxy.com/p/55134.html
下一篇: 模仿静态方法