python【自写】命名元组【杂耍自用】

Python编程经典案例【考题】自由落体运动球的运动轨迹 阅读详情

内置方法

from collections import namedtuple
free_falling_body = namedtuple('free_falling_body', ['g', 't'])
h = free_falling_body(9.8, 2 ** (1 / 2))
print(h)  # 自由落体运动
print(h.g * h.t ** 2 / 2)  # 自由落体高度

free_falling_body(g=9.8, t=1.4142135623730951)
9.800000000000002

自写1

class Tuple:
    t = ('a', 'b', 'c')
    for i in t:
        exec("%s='%s'" % (i, i))

print(' '.join(Tuple.t))
print(Tuple.b, Tuple.i)
print(Tuple.__dict__)

打印结果

a b c
b c
{'__module__': '__main__', 't': ('a', 'b', 'c'), 'i': 'c', 'a': 'a', 'b': 'b', 'c': 'c', '__dict__': <attribute '__dict__' of 'Tuple' objects>, '__weakref__': <attribute '__weakref__' of 'Tuple' objects>, '__doc__': None}

自写2

class里面的命名原理展示

class TB:
    __prefix = 'HJW_'
    _c = 'c'
    b = __prefix + 'b'
    a = __prefix + 'a'

print(dir(TB))
print([i for i in dir(TB) if not i.startswith('__')])
print([i for i in dir(TB) if not i.startswith('_')])
print()
for i in TB.__dict__.items():
    print(*i)

打印结果

['_TB__prefix', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_c', 'a', 'b']
['_TB__prefix', '_c', 'a', 'b']
['a', 'b']

__module__ __main__
_TB__prefix HJW_
_c c
b HJW_b
a HJW_a
__dict__ <attribute '__dict__' of 'TB' objects>
__weakref__ <attribute '__weakref__' of 'TB' objects>
__doc__ None

tuple

class Tuple(tuple):
    def __getattr__(self, item):
        return self[self.index(item)]

t = Tuple(('aa', 'bb'))
print(t.aa, t.bb)  # aa bb
print(t.cc)  # ValueError: tuple.index(x): x not in tuple

setattr、getattr、getattribute报错和玩法

报错

d = dict()
d.a = 5  # 报错:`AttributeError: 'dict' object has no attribute 'a'`
d.__setattr__('a', 5)  # 报错:`AttributeError: 'dict' object has no attribute 'a'`

报错

class Object:pass
d = Object()
d.__setattr__('a', 5)
print(d.a, d.__getattribute__('a'))  # 不报错
print(d['a'])  # 报错:`TypeError: 'Object' object is not subscriptable`

报错

class Object:
    def __getattr__(self, item):
        return item

d = Object()
print(d.aa, d.bb)  # aa bb

dict

class Dict(dict):
    def __getattr__(self, item):
        return self[item]

d = Dict(aa='aa', bb='bb')
print(d.aa, d.bb)  # aa bb
print(d.cc)  # KeyError: 'cc'

set

class Set(set):
    def __getattr__(self, item):
        return item if item in self else None

s = Set(('aa', 'bb'))
print(s.aa, s.bb, s.cc)  # aa bb None
STM32G474使用HRTIM触发多路ADC采样,通过DMA传输,通过串口打印显示,实现PWM中间时刻采样,避免开关噪声 本章工程使用HRTIM定时器进行ADC的触发,打开主定时器,子定时器A,B,C。(本工程未使用到A与C定时器,配置时可无需打开)主定时器配置:设置主定时器的频率为100KHz,并且设置自动更新以及自动重装载值。子定时器B设置:设置子定时器B为100KHz,并且每九次计数完成后产生一次中断。配置如上:1.打开自动预装载值2.打开自动复位3.设置死区时间以及互补PWM4.定时器复位触发更新寄存器5.定时器翻转重置更新6.重置触发源(定时器计数器在发生更新事件时重置) 阅读详情

相关推荐

Ubuntu20.04 高效安装企业微信的完整指南

本文提供了在Ubuntu20.04系统上高效安装企业微信的完整指南,详细介绍了通过Deepin-wine环境运行Windows版企业微信的步骤和优化技巧。内容包括系统环境检查、依赖安装、企业微信包的获取与安装、首次运行配置及常见问题解决方案,帮助开发者在Ubuntu系统中流畅使用企业微信进行办公通讯。

weixin_42568801的博客 353

Python——命名元组 (namedtuple)

命名元组 (namedtuple) 完成对命名元组的简单操作。 命名元组 (namedtuple) Python 中提供了基础的不可变数据结构元组tuple,对元组元素的访问需通过索引来完成,对此需要熟记每个下标对应的具体含义。如果元素数量一多,要记清楚这些东西就会比较麻烦了,于是就出现了命名元组namedtuple。 创建命名元组 命名元组的构造函数接受两个参数typename,field_names: typename:元组的名字; field_names:元组各个元素的名称,也就是属性名

yelitoudu的博客 6414

ClickHouse集群扩容实战:用clickhouse-copier搞定数据迁移与分片重平衡

本文详细介绍了使用clickhouse-copier工具实现ClickHouse集群从3分片到5分片的平滑扩容实战。通过分片级并行处理、原子性保证等核心机制,该工具能高效完成数据迁移与分片重平衡,同时保持服务连续性。文章涵盖集群拓扑规划、表结构检查、迁移配置、执行监控及迁移后优化等关键步骤,为大数据量场景下的ClickHouse扩容提供完整解决方案。

weixin_29091837的博客 294

Python中的“命名元组”

命名元组基本上是易于创建、轻量级的对象类型。命名元组实例可以通过类似对象的变量解引用或标准元组语法进行引用。它们可以像结构体或其他常见的记录类型一样使用,只是它们是不可变的。命名元组在 Python 2.6 和 Python 3.0 中被引入,尽管在 Python 2.4 中有一个实现的食谱。例如,通常将一个点表示为一个元组(x, y)。# 使用索引引用# 使用元组解包因此,在任何你认为对象表示法会使代码更具有Python风格且更易读的地方,你应该使用命名元组而不是普通元组。

liluo0815481的博客 464

告别环境配置烦恼:用Conda一键搞定GATK4、samtools、fastp等生信分析全家桶

本文介绍如何利用Conda快速搭建包含GATK4、samtools、fastp等工具的生物信息学分析环境,解决软件安装和版本冲突问题。通过详细的配置步骤和实战案例,帮助研究者十分钟内完成重测序分析全家桶的环境配置,显著提升上游分析效率。

weixin_30753873的博客 336

活用QueryWrapper与@Select注解,构建MybatisPlus动态多表查询方案

本文深入探讨了如何结合MybatisPlus的QueryWrapper与@Select注解,构建高效灵活的动态多表关联查询方案。通过解析${ew.customSqlSegment}占位符机制,并设计通用的Service层封装,解决了复杂条件下多表查询的SQL拼接难题,显著提升了后台管理系统列表查询的开发效率与可维护性。

weixin_29291069的博客 271

Python 中的命名元组(namedtuple)

命名元组的实例与普通元组相似,可以通过索引或字段名来访问元素。但命名元组的字段是有名称的,使得代码更易于理解和维护。此外,命名元组还可以像普通类一样具有属性和方法,但是不能像普通类那样修改字段的值。Python 中的命名元组(namedtuple)是一种轻量级的数据结构,可以用来创建具有字段名的元组。命名元组提供了一种更具可读性和自描述性的方法来处理元组数据。使用命名元组在处理结构化数据时非常方便,可以避免使用索引来访问元组元素所带来的困惑,同时保留了元组的轻量和高效特性。

言之。 1万+

生物信息学名词解释 | K-mer (长度为k的短序列)

K-mer 何谓K-mer 所谓Kmer,即为一段长度为k的DNA片段,是由测序reads剪切一部分得到的。k为一个奇数,k=几,就为几mer。 比如:我的测序reads长度为100bp,我将这100bp打断成17bp的短片段,打断后的17bp段片段就叫17mer,可以获得(100-17+1)条k-mer序列。 Table1 k-mers for GTAGAGCTGT. k k-mers 1 G,T,A,G,A,G,C,T,G,T 3 GTA,TAG,AGA,GAG,AGC,GCT,CT

qq_50637636的博客 2万+

python命名元祖写法

【代码】python命名元祖写法,python进阶内容

jianwei的博客 254

深入解析SPLL单相软件锁相环:从SOGI原理到PI系数调优实践

本文深入解析SPLL单相软件锁相环技术,从SOGI原理到PI系数调优实践,详细介绍了其在数字电源设计中的应用。通过数学推导和实际调试经验,帮助工程师快速掌握锁相环的核心参数计算和优化方法,提升电网相位追踪的精确度和响应速度。

weixin_30316097的博客 384

14、PostgreSQL日志文件、系统统计与查询优化全解析

本文全面解析了PostgreSQL数据库中的系统统计、日志文件配置与查询优化技巧。详细介绍了如何利用pg_stat_statements模块进行性能监控,配置日志记录以发现潜在问题,并深入探讨了查询优化器的工作原理和优化策略。通过实际案例分析,展示了如何综合应用这些技术提升数据库性能。适合希望提升PostgreSQL性能与稳定性的数据库管理员和开发人员阅读。

efc123456的博客 94

python命名元组

Python的元组不能为元组内的元素进行命名,获取值时只能通过下标索引来获取如下: t = ('test','男','18') t[0] t[1] 结果: test 男 而命名元组可以来构造一个含有字段名称的元组类,通过collections.namedtuple来定义: from collections import namedtuple 方式一: user = namedtuple('User', ['name', 'age','gender']) 方式二: user = namedtuple(

一条到晚游泳的鱼 717

代谢组数据分析(四):多种差异分析方法筛选代谢物标记物

本文详细介绍了代谢组学中常用的差异分析方法,包括倍数变化法、T检验、VIP值在OPLS-DA中的应用。通过这些方法,研究者能够筛选出在不同组别间具有显著差异的代谢物,为疾病诊断和治疗提供线索。文章还提供了一个整合的R函数run_metabolomeDA,便于研究人员进行一站式差异分析,并展示了如何生成火山图来可视化结果。

专注生信领域 6776

python 命名元组_python-命名元祖的学习

1.什么是元组?不可变的序列类型“不能修改的列表” 2.元组支持哪些操作?元组是序列类型,支持序列类型的所有操作通过索引取值one_tuple = ("可优", 17, "男", "coding", "Never Stop Learning!")one_tuple[-1]切片操作one_tuple = ("可优", 17, "男", "coding", "Never Stop Learning!"...

weixin_39609953的博客 430

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

python 命名元组(namedtuple)

我们知道c/c++语言中,有结构体这种数据类型:struct{ string name; int age; char sex; }student;在对结构体对象进行赋值或者取值时可以使用.运算符进行操作。 那么问题来,python中有没有这个数据类型呢?答案是肯定有的,它就是命名元组(namedtyple)。 首先来看一下python中普通元组的

我想成为摄影家 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Python之命名元组 (namedtuple)

  任务描述 本关任务:补充函数代码,完成对命名元组的简单操作。 命名元组 (namedtuple) Python中提供了基础的不可变数据结构元组tuple,对元组元素的访问需通过索引来完成,对此需要熟记每个下标对应的具体含义。如果元素数量一多,要记清楚这些东西就会比较麻烦了,于是就出现了命名元组namedtuple。 创建命名元组 命名元组的构造函数接受两个参数typename,fi...

Andone_hsx的博客 3147

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python中namedtuple的用法

python中 namedtuple 的用法 # encoding: utf-8 from collections import namedtuple person =('name','age','sex','mail') Person = nam

阿常呓语的专栏 8709

Python元组定义

在Python中,很多人认为元组创建需要使用(),其实不然真正决定元组的形式是逗号我们用内置函数type()可以查看数据类型所以我们在定义数据的时候千万不能在后面加逗号否则会将定义的数据类型变为元组...

qq_38707580的博客 1203

python 命名元组结合mysql_如何在python内部实现命名元组?

实际上,很容易找出如何实现给定的命名元组:如果在创建它时传递关键字参数verbose = True,则打印其类定义:>>> Point = namedtuple('Point', "x y", verbose=True)from builtins import property as _property, tuple as _tuplefrom operator import i...

weixin_30789475的博客 113

python模块collections中namedtuple()的理解

Python中存储系列数据,比较常见的数据类型有list,除此之外,还有tuple数据类型。相比与list,tuple中的元素不可修改,在映射中可以当键使用。tuple元组的item只能通过index访问,collections模块的namedtuple子类不仅可以使用item的index访问item,还可以通过item的name进行访问。可以将namedtuple理解为c中的struct结构,其

何雷 3万+

Python 创建包含列表的元组

“可变”的tuple前面我们看到了tuple一旦创建就不能修改。现在,我们来看一个“可变”的tuple:&gt;&gt;&gt; t = ('a', 'b', ['A', 'B'])注意到 t 有 3 个元素:'a','b'和一个list:['A', 'B']。list作为一个整体是tuple的第3个元素。list对象可以通过 t[2] 拿到:&gt;&gt;&gt; L = t[2]然后,我们把...

weixin_34174132的博客 557

[python]可命名元组

今天看了一下python的可命名元组的规则,也挺好记的,就几行代码 ##可命名元组 MytupleClass = collections.namedtuple('MytupleClass',['x','y','z']) obj = MytupleClass(11,22,33) print(obj.x) obj.x即是指向11,obj.y指向22,以此类推 ...

不同地方的猴子的博客 297

python中的命名元组namedtuple

0 前言 python的tuple是非常常用的数据结构,tuple集合类型用来存储对象引用的序列。tuple中的元素是补课更改的,tuple中的元素通过索引进行访问。 如: t = ('tom', 23, 170.5) print(t[0]) tuple中的元素需要使用索引进行访问,如果tuple中的元素较多的话,我们就需要记住tuple中元素的顺序才能正确访问tuple中的元素,这是很不方便的...

Lavi的专栏 738

Python之命名元组

命名元组与普通元组一样,有相同的表现特征,其添加的功能就是可以根据名称引用元组中的项。 collections 模块提供了namedtuple()函数,用于创建自定义的元组数据类型,函数定义为:collections.namedtuple(typename,field_names,verbose=False, rename=False)

LK-T.O.P的博客 3342

Python重要数据结构之元组,命名元组(通俗易懂)

元组 元组和列表十分相似,大部分方法都通用,但是元组与列表的最大区别是列表可以修改,读取,删除,而元组创建之后则不能修改,不可以删除单个元素,但是可以删除整个元组。 1. 定义元组 元组在定义上和列表类似,定义元组时只需要用"(" 和 ")"把元素括起来就可以。 执行结果如下: 但是要注意,如果元组只有一个元素,则这个元素后面必须有“,”,否则元素就还是原来的类型。 例如: 执行结果如下: 2. 删除元组 由于元组不能修改,所以元组也不能单独删除部分元素,要删除只能删除整个元组。 例如: 结果如下

Ma_JunSSR的博客 793

python中命名元组

实际上 collections.namedtuple() 是一个工厂方法,它返回的是python中标准元组类型的子类。我们提供给它一个类型名称以及相应的字段,它就返回一个可实例化的类为你已经定义好的字段传入值等。 from collections import namedtuple Subscriber = namedtuble('Subscriber', ['addr', 'joined']...

chenyuhuaxin的博客 893
上一篇: Python高亮文本中的关键词
下一篇: class里的列表推导式报错
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值