Написание функции внутри класса для генерации списка из шести случайных чисел между заданным диапазоном - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу создать список случайных чисел, где диапазон и длина списка могут быть изменены позже без изменения функции. Итак, я подумал о создании функции и кода, который я пытался использовать с помощью Python 3x, выглядит следующим образом:

class Traffic_matrix:

  def All_traffic(self,first,last,length):
      all_t=[]
      for i in range(length):
        all_t.append (random.randint(first, last))
all_t = Traffic_matrix()
print(all_t.All_traffic(23,56,6))

Я знаю, что где-то допустил ошибку и не знаю, что это такое.Пожалуйста, помогите мне разобраться в этом.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

вы просто добавляете «return all_t» как последний оператор определения вашей функции All_traffic.Это будет работать.

0 голосов
/ 26 сентября 2018

Вы по сути восстанавливаете (худшую версию) random.choices(...) с вашей функцией.Лучше использовать choices:

import random

class Traffic_Matrix:

  @classmethod
  def All_Traffic(cls,first,last,length):
      # return smth from it to get "results"
      return random.choices(range(first,last+1), k=length)

values = Traffic_Matrix.All_Traffic(23,56,6)
print(values)

Не имеет смысла помещать его в класс - никакие члены-экземпляры не используются - вы можете определить его как метод класса, если вам действительно нужен «переименованный» случайный.choices ()

Вывод:

[25, 33, 42, 38, 38, 45]

Доку: random.choices (совокупность, вес = Нет, *, cum_weights = Нет, k = 1)

См .: В чем разница между @staticmethod и @classmethod?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...