Questo non è esattamente il punto della tua domanda reale, ma dal momento che hai detto che sei un principiante di Python forse sarà utile, e nessun altro è uscito e lo ha detto esplicitamente.
Non avrei mai corretto il codice precedente rendendo il metodo un metodo statico. Avrei abbandonato la classe e avrei semplicemente scritto una funzione:
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print drawSample(5,Choices)
Se hai molte funzioni correlate, puoi raggrupparle in un modulo - cioè, metterle tutte nello stesso file, chiamato sample.py
ad esempio; poi
import sample
Choices=range(100)
print sample.drawSample(5,Choices)
Oppure avrei aggiunto un __init__
metodo alla classe e creato un'istanza che aveva metodi utili:
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)
(Ho anche cambiato le convenzioni del caso nell'esempio sopra per abbinare lo stile raccomandato da PEP 8.)
Uno dei vantaggi di Python è che non ti obbliga a usare le classi per tutto. Puoi usarli solo quando ci sono dati o stati che dovrebbero essere associati ai metodi, a questo servono le classi. Altrimenti puoi usare le funzioni, a questo servono.