python字符串可以保存在变量中吗_在python中可以从字符串变量实例化类吗?
一位评论者提到
exec
;这是您将其组合在一起的方式:
def string_to_class(python_text):
local_vars = {}
exec(python_text, {}, local_vars)
# assume just a single new symbol was created (the class), and return it
return list(local_vars.values())[0]
class_template = """
class MyClass(object):
def __init__(self, name):
self.name = name
def print_name(self):
print('My name is: ' + self.name)
@staticmethod
def add_whatever(a, b):
return a + b
"""
MyClass = string_to_class(class_template)
my_class_instance = MyClass('Ben')
print(MyClass.add_whatever(2, 3))
my_class_instance.print_name()
但就像其他一些评论提到的,这不是一种常用的技术,所以要小心。随着用例变得更加复杂,您也会很快遇到问题:
some_string_that_defines_a_base_class = "case Base..."
some_string_that_defines_a_derived_class = "case Derived(Base):..."
Base = string_to_class(some_string_that_defines_a_base_class)
# this will crash because Base isn't defined in the scope that the string
# is being evaluated with
Derived = string_to_class(some_string_that_defines_a_derived_class)
您可以通过直接调用来修复它。
exec
(the
string_to_class
函数的功能还不够强大),但它很快就变得很难使用:我甚至没有提到如何
import
S还可以。还有其他一些技术(函数装饰器、元类)可以让你做你想做的事,这些技术会减少你的痛苦,但是有时候
执行程序
真的是你唯一的选择。
python字符串可以保存在变量中吗_在python中可以从字符串变量实例化类吗?相关推荐
- python字符串和字节串有什么区别_对于Python中的字节串bytes和字符串以及转义字符的新的认识...
事情的起因是之前同学叫我帮他用Python修改一个压缩包的二进制内容用来做fuzz,根据他的要求,把压缩包test.rar以十六进制的方式打开,每次修改其中一个十六进制字符串并保存为一个新的rar用来 ...
- python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解
一.建立文件,保存数据 1.使用python中内置的open函数 打开txt文件 #mode 模式 #w 只能操作写入 r 只能读取 a 向文件追加 #w+ 可读可写 r+可读可写 a+可读可追加 # ...
- python怎么把变量付给数组_使用Python将数组的元素导出到变量中(unpacking)
解决的问题 需要将数组(list)或元组(tuple)中的元素导出到N个变量中. 解决的方案 任何序列都可以通过简单的变量赋值方式将其元素分配到对应的变量中,唯一的要求就是变量的数量和结构需要和序列中 ...
- python中对象和变量的关系_浅析python中的类变量和对象变量
刚学python,学到了有关于类和对象的地方.对一个概念有点模糊,后来通过实践编码找到一定规律 在python中 class test(object): id=2 name='tt' list=['t ...
- 通常我们将python语言程序保存在一个后缀_【单选题】通常我们将Python语言程序保存在一个后缀为( )的文件中。...
问题:[单选题]通常我们将Python语言程序保存在一个后缀为( )的文件中. 更多相关问题 谢某对某公安局以其实施盗窃为由处以15日拘留的处罚不服,向法院提起行政诉讼.该局向法院提供的证 下列关于刑 ...
- php 斜杠 变量如何添加_在PHP中使用斜杠(/)的字符串问题
我有一些id(来自数据库的主键),具有下一种格式:2019/34.我在一张桌子上显示这段代码,我可以正常看到它.当我尝试在PHP中将此变量发送到javascript方法时,问题就来了.因为即时通讯在i ...
- python 采用to_csv保存数据不覆盖原有数据到文件中
采用to_csv保存数据不覆盖原有数据到文件中 df.to_csv(date+'.csv',index = False,header=0,mode='a') 关键是 mode参数
- python统计文件行数和字符数组_使用Python查找文件大小的字符串中数组字符串的频率...
我看了很多答案,它们的目标是找到文件中每个单词的出现,或者大字符串,甚至数组.但我不想这么做,我的字符串也不是来自文本文件.在 给定一个大字符串,比如一个文件大小的字符串,如何计算大字符串中每个数组元 ...
- python文件的打开模式有几种_以下选项中,不是Python打开文件模式的是( )_学小易找答案...
[单选题]下面代码的输出结果是( ) x=12.34+0j print(type(x)) [单选题]在本实验中为什么不使用草酸钠,而使用草酸来制备草酸亚铁? [单选题]减压抽滤时,下述操作不正确的是 ...
- python变量和列表_自学python第一天——变量和列表
从零开始,万事开头难,从最基础的开始.学python已有几天,因为有C语言和perl语言的基础,学起python确实是很快,我发现python有很多很好的函数功能,比如: chl = "la ...
最新文章
- 计算机的英语怎么写的英语怎么写,计算机英语怎么写
- 原创 | 脑机接口不断迎来重大突破,“思想钢印”还会远吗?
- 开发自己的 chart - 每天5分钟玩转 Docker 容器技术(167)
- android 模拟器read-only file system,WAC启动Android模拟器 transfer error: Read-only file system错误解决方法...
- Python File 介绍
- 【Java数据结构】线索二叉树
- 剑指offer之合并有序链表
- 微信开发--获取用户信息中文乱码的解决方案
- Cocos2d-x动作(Action)详解
- 求四科平均成绩c语言,c语言实验报告评语大全
- 酷比魔方iwork12 linux,双系统二合一 酷比魔方iwork 12评测
- 计算机网络自顶向下方法 第四章 作业习题答案
- 5分钟用C#实现串口助手
- 如何让Bing快速收录你的网站?
- Python——利用协程实现视频的拖影效果
- 浏览器(V8)的垃圾回收机制
- Taichi 加速 Python 中图像处理
- UE4.虚幻4.简单介绍和学习视频推荐
- java折线图_Java系列:JFreeChart在线制作折线图
- matlab海龟交易策略,【策略篇】海龟交易系统使用方法和源码
热门文章
- Marketing Cloud和Cloud for Customer的客户主数据
- Revenue Cloud答疑
- 打印基于某category创建的所有product
- SAP UI5 popup弹出对话框的调试
- 删除所有正在运行和退出的docker实例
- ABAP git客户端的简单介绍
- java经典程序_java经典程序编程知识(二)
- 参数 中_Python中函数的参数传递
- cisco 防火墙模拟器_【方案分享】如何解决cisco设备无法进入系统问题?
- b-2014四川电子机械职业技术学院计算机科学与技术毕业设计选题,2014届计算机科学与技术专业本科毕业设计(论文)选题指南...