Dies ist nicht ganz der Punkt Ihrer eigentlichen Frage, aber da Sie gesagt haben, dass Sie ein Python-Neuling sind, wird es vielleicht hilfreich sein, und niemand anderes ist ganz herausgekommen und hat es explizit gesagt.
Ich hätte den obigen Code niemals repariert, indem ich die Methode zu einer statischen Methode gemacht hätte. Ich hätte entweder die Klasse verlassen und nur eine Funktion geschrieben:
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print drawSample(5,Choices)
Wenn Sie viele verwandte Funktionen haben, können Sie diese in einem Modul gruppieren, dh alle in derselben Datei ablegen, die sample.pybeispielsweise benannt ist. dann
import sample
Choices=range(100)
print sample.drawSample(5,Choices)
Oder ich hätte __init__der Klasse eine Methode hinzugefügt und eine Instanz mit nützlichen Methoden erstellt:
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)
(Ich habe auch die Fallkonventionen im obigen Beispiel geändert, um sie an den von PEP 8 empfohlenen Stil anzupassen.)
Einer der Vorteile von Python ist, dass Sie nicht gezwungen werden, Klassen für alles zu verwenden. Sie können sie nur verwenden, wenn Daten oder Status vorhanden sind, die den Methoden zugeordnet werden sollen. Dafür sind Klassen vorgesehen. Andernfalls können Sie Funktionen verwenden, für die Funktionen vorgesehen sind.