我在类中有大量变量:
class Variables:
num1 = "Text 1"
num2 = "Text 2"
num3 = "Text 3"
等等。我需要为每个变量分配范围(1,30)中的特定数字,以便在类中,每个变量由不同的整数值表示。任何帮助将不胜感激。谢谢!
答案 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)