Ce n'est pas tout à fait au point de votre question réelle, mais puisque vous avez dit que vous êtes un débutant en python, cela sera peut-être utile, et personne d'autre ne l'a dit explicitement.
Je n'aurais jamais corrigé le code ci-dessus en faisant de la méthode une méthode statique. J'aurais soit abandonné la classe et juste écrit une fonction:
def drawSample(samplesize,List):
sample=random.sample(List,samplesize)
return sample
Choices=range(100)
print drawSample(5,Choices)
Si vous avez de nombreuses fonctions associées, vous pouvez les regrouper dans un module - c'est-à-dire les mettre toutes dans le même fichier, nommé sample.py
par exemple; puis
import sample
Choices=range(100)
print sample.drawSample(5,Choices)
Ou j'aurais ajouté une __init__
méthode à la classe et créé une instance qui avait des méthodes utiles:
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)
(J'ai également modifié les conventions de casse dans l'exemple ci-dessus pour qu'elles correspondent au style recommandé par PEP 8.)
L'un des avantages de Python est qu'il ne vous oblige pas à utiliser des classes pour tout. Vous ne pouvez les utiliser que lorsqu'il y a des données ou un état qui doivent être associés aux méthodes, ce à quoi servent les classes. Sinon, vous pouvez utiliser des fonctions, à quoi servent les fonctions.