问题描述
如题,多次实例化了一个类之后,如何通过保存的实例的名称字符串str获得类的属性、方法。
直接使用字符串str调用会报错,Traceback如下:
那么怎么通过str获得这个类的属性和方法呢?
部分代码
类的部分定义
conceptioins用于存放实例化过的类的名称
conceptionclass用于存放其地址:
但是直接使用字符串和使用地址这两种方式都不能获得str所对应的类的属性、方法
运行后便得到前面所示的Traceback
尝试
查资料之后有一个帖子里说利用字典可以储存任意类型的键值对的特性可以保存实例化对象的正确类型,使其对于程序来说有意义。但是也失败了,我试着打印了键值对的value值,发现其存储的就是类的实例化对象所存储的物理地址...然后我就很崩溃了...不知道这类问题应该怎么处理
自己的回答
在看了大家的回答之后我又去百度了一下,基本和@zhangliganggm说的一样。
嗯。。是我自己归纳的太罗嗦了 这个问题归纳出来应该是在Python中怎么使用动态变量。
使用locals和globals两个函数就可以了,这两个Python自带的函数已经替我们完成了使用字典来完成动态变量的工作,所以@勤奋的懒人所说的也没错,肯定是我之前尝试的时候出了错。。
一、尝试使用locals()函数来完成动态变量命名及赋值
1.测试代码
2.运行结果
完美
二、尝试使用任意字典而不是locals()
1.测试代码
2.运行结果
三、结论
1.使用任意字典即可完成动态变量的赋值和命名工作
2.我是个天才(雾
3.天才也有犯蠢的时候
最后把我查到的资料也贴出来吧,说不定能帮到和我遇到一样问题的coder
传送门:Python两个内置函数——locals 和globals (学习笔记)
Python中使用动态变量名的方法(这个比较重要)