Isso não vai exatamente ao ponto da sua pergunta real, mas como você disse que é um novato em Python, talvez seja útil, e ninguém mais apareceu e disse isso explicitamente.
Eu nunca teria corrigido o código acima tornando o método um método estático. Eu teria abandonado a aula e apenas escrito uma função:
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print drawSample(5,Choices)
Se você tiver muitas funções relacionadas, pode agrupá-las em um módulo - ou seja, colocá-las todas no mesmo arquivo, com nome, sample.py
por exemplo; então
import sample
Choices=range(100)
print sample.drawSample(5,Choices)
Ou eu teria adicionado um __init__
método à classe e criado uma instância com métodos úteis:
class Sample(object):
'''This class defines various methods related to the sample'''
def __init__(self, thelist):
self.list = thelist
def draw_sample(self, samplesize):
sample=random.sample(self.list,samplesize)
return sample
choices=Sample(range(100))
print choices.draw_sample(5)
(Eu também alterei as convenções de caso no exemplo acima para corresponder ao estilo recomendado pelo PEP 8.)
Uma das vantagens do Python é que ele não o força a usar classes para tudo. Você pode usá-los somente quando houver dados ou estado que devem ser associados aos métodos, que é para que servem as classes. Caso contrário, você pode usar funções, para que servem as funções.