最新要闻
- 【新要闻】曾因配料“双标”遭网友痛批 好丽友漏税22万被罚12万
- 全球时讯:空姐为美容注射玻尿酸:打进血管 险丧命
- 史上最严奶粉新国标实施逾月 贝因美又一款二注奶粉上新 哪些信号值得关注?
- 热推荐:甘肃将为兰州牛肉拉面立法 网友:建议牛肉有重量标准
- 热点在线丨《原神》地位不保?开放世界游戏《鸣潮》实机画面公布
- 环球简讯:曹德旺:大学生去送外卖 和在学校没学到东西有关
- 任性钻“夹缝”被撞旋转1080° 司机甩锅:都怪后车开太快了
- 当前快播:判赔370万!中创新航回应不正当竞争案判决:未曾挖角宁德时代 将上诉
- 通讯!旃怎么读音(旃怎么读)
- 36年前电脑用上AI:IBM 5155运行ChatGPT是什么样?
- 环球看热讯:清晰度和功耗完美平衡!真我GT Neo5系列宣布告别1080P:普及1.5K屏
- 罕见!超级火流星划过北京夜空被拍下:彩色拖尾 爆裂闪光
- 每日快讯!《生化危机4:重制版》阿什莉模型展示:物理晃动效果很优秀
- 全球快看点丨车评人曝奔驰4S维修黑幕:一个迈巴赫大灯小20万 故意损坏夸大车损
- 天天快报!越来越没人买了?雷克萨斯国内销量出炉:同比爆降36%
- 女子给猴子喂食被掌掴 景区回应:含保险、打疫苗可理赔
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球滚动:Template模板类
Template模板类
(资料图)
class Template: """A string class for supporting $-substitutions.""" delimiter = "$" # r"[a-z]" matches to non-ASCII letters when used with IGNORECASE, but # without the ASCII flag. We can"t add re.ASCII to flags because of # backward compatibility. So we use the ?a local flag and [a-z] pattern. # See https://bugs.python.org/issue31672 idpattern = r"(?a:[_a-z][_a-z0-9]*)" braceidpattern = None flags = _re.IGNORECASE def __init_subclass__(cls): super().__init_subclass__() if "pattern" in cls.__dict__: pattern = cls.pattern else: delim = _re.escape(cls.delimiter) id = cls.idpattern bid = cls.braceidpattern or cls.idpattern pattern = fr""" {delim}(?: (?P{delim}) | # Escape sequence of two delimiters (?P {id}) | # delimiter and a Python identifier {{(?P {bid})}} | # delimiter and a braced identifier (?P ) # Other ill-formed delimiter exprs ) """ cls.pattern = _re.compile(pattern, cls.flags | _re.VERBOSE) def __init__(self, template): self.template = template # Search for $$, $identifier, ${identifier}, and any bare $"s def _invalid(self, mo): i = mo.start("invalid") lines = self.template[:i].splitlines(keepends=True) if not lines: colno = 1 lineno = 1 else: colno = i - len("".join(lines[:-1])) lineno = len(lines) raise ValueError("Invalid placeholder in string: line %d, col %d" % (lineno, colno)) def substitute(self, mapping=_sentinel_dict, /, **kws): if mapping is _sentinel_dict: mapping = kws elif kws: mapping = _ChainMap(kws, mapping) # Helper function for .sub() def convert(mo): # Check the most common path first. named = mo.group("named") or mo.group("braced") if named is not None: return str(mapping[named]) if mo.group("escaped") is not None: return self.delimiter if mo.group("invalid") is not None: self._invalid(mo) raise ValueError("Unrecognized named group in pattern", self.pattern) return self.pattern.sub(convert, self.template) def safe_substitute(self, mapping=_sentinel_dict, /, **kws): if mapping is _sentinel_dict: mapping = kws elif kws: mapping = _ChainMap(kws, mapping) # Helper function for .sub() def convert(mo): named = mo.group("named") or mo.group("braced") if named is not None: try: return str(mapping[named]) except KeyError: return mo.group() if mo.group("escaped") is not None: return self.delimiter if mo.group("invalid") is not None: return mo.group() raise ValueError("Unrecognized named group in pattern", self.pattern) return self.pattern.sub(convert, self.template)
源码走读结论--->
1、定义了一种模板格式使用“$”开头,# Search for $$, $identifier, ${identifier}, and any bare $"s
2、定义了两个重要方法:substitute 和safe_substitute,方法里区别就是safe多了一个异常处理,也就是说模板和替换数据个数不对应substitute方法会报KeyError,safe_substitute方法不会报错
3、substitute 和safe_substitute可以使用key=value传参数,也可以使用dict方式传参数
例1:key=value 传值
from string import Templatedata = Template("${name}擅长的科目${project}")new_data = data.substitute(name="张三",project="数学")print(new_data)
结果1:
D:\Python\python.exe D:/勿动/MS/223api/commons/wz.py张三擅长的科目数学Process finished with exit code 0
例2:substitute
from string import Templatedata = Template("${name}擅长的科目${project}不擅长的科目${语文}")new_data = data.substitute(name="张三",project="数学")print(new_data)
结果2:
Traceback (most recent call last): File "D:\勿动\MS\223api\commons\wz.py", line 12, innew_data = data.substitute(name="张三",project="数学") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Python\Lib\string.py", line 121, in substitute return self.pattern.sub(convert, self.template) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Python\Lib\string.py", line 118, in convert self._invalid(mo) File "D:\Python\Lib\string.py", line 101, in _invalid raise ValueError("Invalid placeholder in string: line %d, col %d" %ValueError: Invalid placeholder in string: line 1, col 29Process finished with exit code 1
例3:safe_
from string import Templatedata = Template("${name}擅长的科目${project}不擅长的科目${语文}")new_data = data.safe_substitute(name="张三",project="数学")print(new_data)
结果3:
张三擅长的科目数学不擅长的科目${语文}Process finished with exit code 0
例4:字典传值
rom string import Templatedict1 = {"name": "张三","project":"数学"}data = Template("${name}擅长的科目${project}")new_data = data.safe_substitute(dict1)print(new_data)
结果4:
张三擅长的科目数学Process finished with exit code 0
关键词:
-
【速看料】火山引擎 DataTester:构建增长闭环,3-5 人即可搭建企业增长团队
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群增长是一个老生...
来源: 环球滚动:Template模板类
全球讯息:【Visual Leak Detector】配置项 VLD
【速看料】火山引擎 DataTester:构建增长闭环,3-5 人即可搭建企业增长团队
【新要闻】曾因配料“双标”遭网友痛批 好丽友漏税22万被罚12万
全球时讯:空姐为美容注射玻尿酸:打进血管 险丧命
三星W799哪年上市的?三星W799可以安装微信吗?
诺基亚920还能用吗?诺基亚920手机参数
英雄联盟手游大师多少颗星上宗师?英雄联盟几级可以组队匹配?
总线上的音频设备前是感叹号是什么原因?总线上的音频设备前是感叹号怎么处理?
华为合约机是什么意思?华为合约机和官方标配区别有哪些?
C#遍历指定文件夹中所有文件的3种方法
天天热议:Sed 备忘清单_开发速查表分享
史上最严奶粉新国标实施逾月 贝因美又一款二注奶粉上新 哪些信号值得关注?
热推荐:甘肃将为兰州牛肉拉面立法 网友:建议牛肉有重量标准
热点在线丨《原神》地位不保?开放世界游戏《鸣潮》实机画面公布
环球简讯:曹德旺:大学生去送外卖 和在学校没学到东西有关
任性钻“夹缝”被撞旋转1080° 司机甩锅:都怪后车开太快了
当前快播:判赔370万!中创新航回应不正当竞争案判决:未曾挖角宁德时代 将上诉
天天百事通!OpenIddict使用教程
流量分析入门
全球观速讯丨MySql随笔记基础
【高端访谈】强化城投债与量化领域主动管理 打造私募“固收+”独特策略——专访国恩资本董事总经理杨先哲
通讯!旃怎么读音(旃怎么读)
36年前电脑用上AI:IBM 5155运行ChatGPT是什么样?
环球看热讯:清晰度和功耗完美平衡!真我GT Neo5系列宣布告别1080P:普及1.5K屏
罕见!超级火流星划过北京夜空被拍下:彩色拖尾 爆裂闪光
每日快讯!《生化危机4:重制版》阿什莉模型展示:物理晃动效果很优秀
全球快看点丨车评人曝奔驰4S维修黑幕:一个迈巴赫大灯小20万 故意损坏夸大车损
即时:数据库系统原理之SQL与关系数据库基本操作
每日焦点!【解答】如何保障ETL过程的数据正确性。这个过程会产生哪些问题?
世界要闻:DHCP snooping
全球快播:SSH配置别名登录
天天快报!越来越没人买了?雷克萨斯国内销量出炉:同比爆降36%
女子给猴子喂食被掌掴 景区回应:含保险、打疫苗可理赔
全球看热讯:去年火遍全网!贵州“村BA”现场水泄不通:村草村花“蹦苗迪”
热资讯!最高等级!英国最大陆上油田漏油:已成立黄金指挥部
头条焦点:消息称百度文心一言云服务发布会取消:延期对外发布
焦点快看:2023年底产能破30GW!协鑫集成阜宁12GW组件项目开工 -->
Spring源码核心剖析
焦点热门:计算机解决高中离子浓度计算
最新资讯:微软或提高Win12升级门槛:SSD成为刚需
19.48万元起 国产豪华轿车红旗H6预售:双中置排气着实罕见
焦点速看:赵长江:腾势D9新增订单一天破500台!别克GL8危险了
【世界播资讯】只差价格了 Redmi新机爆料汇总 1999元起交个朋友?
环球动态:市场震荡分化 软件行业红利不断
【全球独家】你不知道的ubuntu DIY发行版
全球快消息!2022年度十大科学辟谣榜出炉:O型血更招蚊子是谣言、变电站很危险?
男子爬树看邓紫棋演唱会致手臂骨折 省1千花1万:网友直呼追星也要注意安全
华海诚科网上发行最终中签率为0.0363%
专家解读消费基础设施纳入公募REITs试点:推动消费扩容提质 并非简单为房企提供资产处置渠道
天天最新:主板注册制新股开启申购 投资者打新须适应新规则
今日观点!国际金融市场早知道:3月27日
速读:票房破3亿!新海城电影《铃芽之旅》拿下2023年引进片票房冠军
新一轮国内油价将于3月底调整:目前分析大概率下调
今日播报!头部车企打架尾部遭殃 恒驰汽车北京仅剩一家门店营业
读Java性能权威指南(第2版)笔记29_线程和同步性能下
【热闻】95后夫妻摆摊日入9千网友让查税慌了 本人回应:当日是偶然 但生意也不错
【环球新视野】ctf反序列化练题
全球新资讯:win32com操作word 第十五 Find接口的使用
院士:抗流感特效药“达菲”原料为八角茴香、附加值提升1100多倍
口碑并入高德:这是要和美团、抖音拼了?
速递!我国首次实现固态氢能发电并网!密度提高20倍
讯息:镗削
当前短讯!转注是什么_转注是什么意思
【Visual Leak Detector】QT 中 VLD 输出解析(三)
快报:北大"韦神"出难题:没想到 初二学生给出标准答案!ChatGPT被难倒
环球关注:MM32 SPIN MCU 电机 FOC 驱动 风机无传感器弦波驱动篇应用笔记
前端设计模式——路由模式
【全球新视野】Mysql 查询指定节点的所有子节点
当前动态:NVIDIA显卡突然解锁视频编码限制:9年前老卡欢呼雀跃
苹果自动驾驶数据曝光:2个月16起车祸
视觉SLAM中的三角化
计算机专业规划
最资讯丨青春期教育怎么写_青春期教育资料
胖东来回应给员工设超5000元委屈奖:鼓励做正确的事情
环球快资讯:PTA OOP第一次总结性作业
快消息!IO多路复用形象举例
新一代Java高性能构建工具Maven-mvnd【实践可行版】
全球短讯!老人的屋子里怎么总有一股怪怪的味道?小心这四种
最资讯丨AMD锐龙7000平台终于要便宜了!砍掉又贵又没用的PCIe 5.0
看热讯:gomock优化diff展示
即时:Xcode的Search Paths配置
天天速读:漫威超级大反派翻车!《蚁人3》男演员乔纳森梅杰斯被捕:攻击妇女
世界新消息丨深圳一立体车库禁停比亚迪 车主:赤裸裸歧视
环球头条:NAS容量告急 但没空余硬盘位怎么办?群晖教你换上新硬盘
天天视讯!煜邦电力: 关于向不特定对象发行可转换公司债券的审核问询函回复及募集说明书等申请文件更新财务数据的提示性公告
热门:JS 做一个简单的 Parser
【全球新视野】SCO音频采集
骁龙7+处理性能加持:Redmi Note 12 Turbo拍照加速50%
李彦宏:百度文心一言和ChatGPT差距也就一两个月
每日消息!虚幻5再次炸场!1部iPhone搞定3A大作级动作捕捉 游戏行业要变天
【全球快播报】高校回应考生因航班延误错过复试:通知合规 可按流程重新参加
天天视点!中国火箭回收新进展:每年可节省十几亿元
快看点丨yolov5训练自己的数据集
环球关注:有监督学习——决策树、集成学习
每日播报!定时任务的路径问题
视焦点讯!支持Win7运行最后版本:U盘软件Rufus 3.22正式发布
女子家中开氛围灯外面看如同着火 引来消防员场面十分尴尬
信息:003至薄套壁 杰士邦避孕套0.66元/枚狂促
世界热讯:永安林业:副董事长辞职