我有一堂课,我会写更多变量。我成功地使用了其中的信息,并更改了其中的信息,但我无法找到制作新变量的方法。我想使用" c" in" addunitgroup()"定义新变量的名称及其列表。我尝试过使用" c"仅定义变量的名称,但没有运气。
To" class UnitGroups",我想添加:" a2 =("默认",unit_type)
import units
unit_type = (units.Tank1, units.Tank2, units.Tank3, units.Infantry1, units.Infantry2)
class UnitGroups:
a = "empty"
a1 = ("default", unit_type)
create = "1"
def addunitgroup():
add = ("default", unit_type)
# UnitGroups.create = add
for make in range(0, 10):
if make is int(UnitGroups.create):
print(def_name, ": ", "make is UnitGroups.create")
generate = UnitGroups()
a = (int(UnitGroups.create) + 1)
b = "a" + str(a)
c = str("generate." + b + " = " + str(add))
# UnitGroups.a = (c, " = ", str(add))
# exec(str(UnitGroups.a))
# UnitGroups.a2 = add
UnitGroups.create = (int(UnitGroups.create) + 1)
UnitGroups.a = "empty"
if __name__ == "__main__":
addunitgroup()
我不想改变格式。变量应存储在该类中。
首次使用" addunitgroup()"
后我想要的结果class UnitGroups:
a = "empty"
a1 = ("default", unit_type)
a2 = ("default", unit_type)
create = "2"
第二次使用" addunitgroup()"
后我想要的结果class UnitGroups:
a = "empty"
a1 = ("default", unit_type)
a2 = ("default", unit_type)
a3 = ("default", unit_type)
create = "3"
更多额外信息,仅用于显示我当前如何更改类中的变量。我现在不需要帮助,我现在不需要帮助: 这个" load()"功能会改变,并且还会设置变量'值取决于文件告诉它的内容。我还将使用另一个函数来设置变量的值。这个将从一个窗口运行。 (这是目前的计划)
def load():
UnitGroups.a1 = ("5", units.Tank1)
非常感谢。
答案 0 :(得分:0)
使用setattr(instance, variable_name, variable_value)
顺便说一句:你定义类的方式,变量属于类本身,而不是实例(大致类似于其他语言中的静态变量)
答案 1 :(得分:0)
class B:
def __init__ (self):
self.a = []
def add (self, value)
self.a.append (value)
b = B () # Constructor __init__ calles, will make empty list inside b
b.add ('john') # Will be in b.a [0]
b.add ('mary') # Will be in b.a [1]
b2 = B () # Another instance, to hold different names
b.add ('bjarne') # Will be in b2.a [0]
b.add ('guido') # Will be in b2.a [1]
等