自己的回答
在看了大家的回答之后我又去百度了一下,基本和@zhangliganggm说的一样。
嗯。。是我自己归纳的太罗嗦了 这个问题归纳出来应该是在Python中怎么使用动态变量。
使用locals和globals两个函数就可以了,这两个Python自带的函数已经替我们完成了使用字典来完成动态变量的工作,所以@勤奋的懒人所说的也没错,肯定是我之前尝试的时候出了错。。
一、尝试使用locals()函数来完成动态变量命名及赋值
1.测试代码
class A():
def __init__(self,name):
self.name = name
self.info = "我是" + self.name + "号实例。"
def output_info(self):
print(self.info)
names = locals()
nums = list(range(5))
for num in nums:
name = input("给实例取个名字:")
names['x%s'%num] = A(name)
# ~ name = input("给变量取个名字:")
# ~ names['x%s'%num] = num**num
for num in nums:
names['x%s'%num].output_info()
2.运行结果
完美
二、尝试使用任意字典而不是locals()
1.测试代码
class A():
def __init__(self,name):
self.name = name
self.info = "我是" + self.name + "号实例。"
def output_info(self):
print(self.info)
names = locals()
test = {}
nums = list(range(5))
for num in nums:
name = input("给实例取个名字:")
names['x%s'%num] = A(name)
test['x%s'%num] = A(name)
# ~ name = input("给变量取个名字:")
# ~ names['x%s'%num] = num**num
for num in nums:
names['x%s'%num].output_info()
test['x%s'%num].output_info()
2.运行结果
三、结论
1.使用任意字典即可完成动态变量的赋值和命名工作
2.我是个天才(雾
3.天才也有犯蠢的时候