函数在一个不是方法的python类中

spi*_*nt0 7 python-2.7

我有一个需要辅助函数的类,例如,一个用于计算仅使用传入的参数而不是类的任何属性的校验和.该函数仅由类的方法调用.所以我不需要传递'self'作为函数的第一个形式.

我该如何实现这些功能?我可以在类中使用非方法函数吗?我应该在课外定义它们(即使它们没有被其他任何东西使用)?或者他们可以成为常规方法吗?

sap*_*api 5

如果要在类中使用不以self作为参数的函数,请使用@staticmethod装饰器:

 class Awesomeness(object):
     def method(self, *args):
         pass

     @staticmethod
     def another_method(*args):
         pass
Run Code Online (Sandbox Code Playgroud)

但是,从概念上讲,我绝对会考虑将其放在模块范围内,尤其是当它是不使用实例或类属性的校验和函数时。

  • 谢谢,“将其置于模块范围内”是什么意思? (2认同)