Python:将随机整数分配给类中的变量

时间:2016-01-10 00:04:43

标签: python random integer

我在类中有大量变量:

class Variables:
  num1 = "Text 1"

  num2 = "Text 2"

  num3 = "Text 3"

等等。我需要为每个变量分配范围(1,30)中的特定数字,以便在类中,每个变量由不同的整数值表示。任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:2)

你的班级中有很多数据看起来像'名字'(当你使用变量num1,num2等名称时),每个'name'映射到'value'(在你的价值看起来像“文字1”,“文字2”等等。

您可能会发现为此数据使用字典更容易,而不是尝试定义每个名称:值作为单独的变量=值。

例如,您最终会得到更多类似的内容:

class Variables(object):
    numbers = {
        "num1": "Text 1",
        "num2": "Text 2",
        "num3": "Text 3",
    }

现在,通过程序生成(一种自动说法的奇特方式)字典变得更加直接:

class Variables(object):
    numbers = {
        "num{}".format(i): "Text {}".format(i)
        for i in range(100)
    }

现在,如果你想让它们成为随机数:

import random

class Variables(object):
    numbers = {
        "num{}".format(i): "Text {}".format(random.randrange(100))
        for i in range(100)
    }

v = Variables()
print v.numbers["num50"]

答案 1 :(得分:1)

你的意思是这样吗?

class Variables():
    def __init__(self):
        for i in range(1, 31):
            setattr(self, 'num{}'.format(i), 'Text {}'.format(i))

v = Variables()

print v.num1 # Text 1
print v.num30 # Text 30

答案 2 :(得分:0)

首先创建变量并将它们添加到字典中:

dic = {num1:"Text 1", num2 : "text2",..}

接下来创建一个变量obejct:

  a = Variables()   

然后调用set_dic类方法:

  a.set_dic(dic)

它的每个变量都是一个在1,30之间的随机整数

from random import randint  
class Variables:
      def __init__(self):
            self.dic = {}
      def set_dic(self, dic):
            self.dic =  dic
            for x in dic:
                  dic[x] = randint(1,30)