Bu tam olarak asıl sorunuzun noktasına gelmiyor, ancak bir python acemi olduğunuzu söylediğiniz için belki yardımcı olacaktır ve başka hiç kimse tam olarak çıkıp bunu açıkça söylemedi.
Yöntemi statik bir yöntem haline getirerek yukarıdaki kodu asla düzeltmezdim. Ya sınıfı terk eder ve sadece bir fonksiyon yazardım:
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print drawSample(5,Choices)
Çok sayıda ilişkili fonksiyonunuz varsa, bunları bir modülde gruplayabilirsiniz - yani hepsini aynı dosyaya koyun, sample.py
örneğin; sonra
import sample
Choices=range(100)
print sample.drawSample(5,Choices)
Veya __init__
sınıfa bir yöntem ekleyip yararlı yöntemlere sahip bir örnek oluşturabilirdim:
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)
(Ayrıca yukarıdaki örnekteki vaka kurallarını PEP 8 tarafından önerilen stile uyacak şekilde değiştirdim.)
Python'un avantajlarından biri, sizi her şey için sınıfları kullanmaya zorlamamasıdır. Bunları yalnızca yöntemlerle ilişkilendirilmesi gereken veri veya durum olduğunda kullanabilirsiniz, bu da sınıflar içindir. Aksi takdirde, işlevler için olan işlevleri kullanabilirsiniz.