To nie jest do końca sedno twojego rzeczywistego pytania, ale skoro powiedziałeś, że jesteś nowicjuszem w Pythonie, być może będzie to pomocne, a nikt inny nie wyszedł i nie powiedział tego wyraźnie.
Nigdy nie naprawiłbym powyższego kodu, czyniąc metodę metodą statyczną. Albo porzuciłbym klasę i po prostu napisałbym funkcję:
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print drawSample(5,Choices)
Jeśli masz wiele powiązanych funkcji, możesz je zgrupować w module - tj. Umieścić je wszystkie w tym samym pliku, nazwanym sample.py
na przykład; następnie
import sample
Choices=range(100)
print sample.drawSample(5,Choices)
Albo dodałbym __init__
metodę do klasy i utworzyłbym instancję, która zawierałaby przydatne metody:
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)
(Zmieniłem również konwencje przypadku w powyższym przykładzie, aby pasowały do stylu zalecanego przez PEP 8.)
Jedną z zalet Pythona jest to, że nie wymusza używania klas do wszystkiego. Możesz ich używać tylko wtedy, gdy istnieją dane lub stan, które powinny być skojarzone z metodami, do czego służą klasy. W przeciwnym razie możesz używać funkcji, do czego służą funkcje.