Це не зовсім до пункту вашого фактичного запитання, але оскільки ви сказали, що ви новачок у python, можливо, це буде корисно, і ніхто інший не вийшов і не сказав це прямо.
Я ніколи не виправив би вищевказаний код, зробивши метод статичним методом. Я б або залишив клас і просто написав би функцію:
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print drawSample(5,Choices)
Якщо у вас багато пов’язаних функцій, ви можете згрупувати їх у модулі - тобто, помістити їх у один файл, названий, sample.py
наприклад; тоді
import sample
Choices=range(100)
print sample.drawSample(5,Choices)
Або я б додав __init__
метод до класу і створив екземпляр, який мав би корисні методи:
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)
(Я також змінив домовленості про регістри у наведеному вище прикладі, щоб відповідати стилю, рекомендованому PEP 8.)
Однією з переваг Python є те, що він не змушує вас використовувати класи для всього. Ви можете використовувати їх лише тоді, коли є дані або стан, які повинні бути пов'язані з методами, для чого призначені класи. В іншому випадку ви можете використовувати функції, для чого вони і призначені.