【发布时间】:2011-01-27 03:57:00
【问题描述】:
我用代码在python中遇到了未绑定方法错误
import random
class Sample(object):
'''This class defines various methods related to the sample'''
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print Sample.drawSample(5,Choices)
在这里阅读了许多有用的帖子后,我想出了如何在上面添加@staticmethod 以使代码正常工作。我是蟒蛇新手。有人可以解释一下为什么要定义静态方法吗?或者,为什么不是所有的方法都定义为静态方法?
【问题讨论】:
-
这是一个奇怪的问题。静态方法是设计必需。这不是一个“优势”的东西。你使用它们是因为你必须这样做。具有静态方法是类的设计特征。您是在问什么是静态方法吗?我认为这个问题可以重新措辞,以更清楚地定义您需要知道的内容。
-
不,我不想知道它们是什么。我想知道的是为什么它是“必需品”,从其他人给出的答案中已经很清楚了。那是您何时定义它而不是非静态方法。谢谢。
-
@S.Lott:什么时候需要使用静态方法而不是使用普通的类方法?据我所知,类方法可以做静态方法可以做的所有事情。静态方法确实具有本文其他地方列出的“优势”,但我看不出为什么不能在可以使用静态方法的任何地方使用类方法的任何原因,因此使其成为必需品。
标签: python oop static-methods