博客
关于我
笨办法学Python之将对象名的字符串类型,转化成相应对象
阅读量:377 次
发布时间:2019-03-05

本文共 640 字,大约阅读时间需要 2 分钟。

在Python中,通过使用`eval()`函数可以轻松创建对象。以下是几种常用的实现方法:

方法一:

使用`eval()`直接创建对象。

```pythona = eval('obj()')```

需要注意的是,对象名的字符串形式需要使用括号形式(即`obj()`),而不是直接的类名字符串(如`obj`)。通过`eval()`函数可以动态地创建对象。

方法二:

预编译字符串为代码对象,以提高效率。

```pythoncreate_obj = compile('obj()', 'create_obj.py', 'eval')a = eval(create_obj)```

这种方法通过预先编译字符串到代码对象,避免了每次都重新编译,可以显著提升性能。

方法三:

将代码放置在模块的顶层,利用`getattr()`动态获取类。

```pythonmodule = __import__('module_name')AClass = getattr(module, 'ClassName')a = AClass() # 或 a = new.instance(AClass)```

这种方法适用于在模块内部动态导入和创建对象,能够自动触发类的初始化过程。

方法四:

使用`global()`函数直接获取全局对象。

```pythonexample = globals()['next']()```

这种方法通过直接访问全局变量,可以快速获取并创建指定对象,适用于已知对象名称的情况。

转载地址:http://mmlwz.baihongyu.com/

你可能感兴趣的文章
279 完全平方数(bfs)
查看>>
875 爱吃香蕉的珂珂(二分查找)
查看>>
桌面图标的自动排列图标
查看>>
第十一届蓝桥杯python组第二场省赛-数字三角形
查看>>
Jquery使用需要下载的文件
查看>>
BST中某一层的所有节点(宽度优先搜索)
查看>>
广度优先搜索
查看>>
Eclipse导出项目出现resource is out of sync with the file...错误
查看>>
Dijkstra算法的总结
查看>>
SpringCloud和SprinBoot之间的关系
查看>>
C语言的运算符和表达式
查看>>
Vue实现选项卡功能
查看>>
uni-app请求头中携带token
查看>>
vue中接收后台的图片验证码并显示
查看>>
Vue入门学习笔记(1)
查看>>
趣谈win10常用快捷键
查看>>
数学建模(NO.18灰色预测)
查看>>
数学建模更新12(数学线性规划模型1)
查看>>
Android,SharedPreferences的使用
查看>>
JPEG压缩技术
查看>>