【发布时间】:2014-08-04 11:33:08
【问题描述】:
关于静态方法和私有方法的问题......
假设我有这样的事情:
class MyClass(object):
@staticmethod
def __methodA(a):
return a
@staticmethod
def __methodB(b):
return b
@staticmethod
def __methodC(c):
return c
@staticmethod
def getAddition(a, b, c):
a = MyClass.__methodA(a)
b = MyClass.__methodB(b)
c = MyClass.__methodC(c)
return a + b + c
我真的只想公开一个方法,而且我有一大堆辅助方法。对我来说,没有@staticmethod 似乎很愚蠢,因为我必须这样做:
from myModule import MyClass
myClass = MyClass()
myClass.getAddition(1,2,3)
但是使用@staticmethod 我可以做到这一点(这对我来说更有意义,因为我只调用一件事):
from myModule import MyClass
MyClass.getAddition(1,2,3)
我知道以前有人问过这类问题。但具体来说,我想知道如果我有 50 个辅助方法并且仍然只有一个公共方法,那么用 @staticmethod 做这样的事情是否是不好的做法。
这个类可能会被很多人使用,我不知道为一种方法显式创建该对象是否有意义。
【问题讨论】:
标签: python static-methods python-decorators