当前位置: 首页 > news >正文

深圳网站制作hi0755网络服务网络推广

深圳网站制作hi0755,网络服务网络推广,金华网站建设多少钱,做网站的是外包公司吗dataclass 是 Python dataclasses 模块中的一个 decorator。当使用 dataclass 装饰器时,它会自动生成一些特殊方法,包括: _ _ init _ _:用于初始化字段的构造函数_ _ repr _ _:对象的字符串表示_ _ eq _ _&#xff1a…

@dataclass 是 Python dataclasses 模块中的一个 decorator。当使用 @dataclass 装饰器时,它会自动生成一些特殊方法,包括:

  • _ _ init _ _:用于初始化字段的构造函数
  • _ _ repr _ _:对象的字符串表示
  • _ _ eq _ _:对象之间的相等比较
  • _ _ hash _ _:使对象可用作字典键(如果值是可哈希的)

除了上述列出的方法之外,@dataclass 装饰器还有两个重要的属性。

  • Order(顺序):如果为 True(默认为 False),将生成 [__lt__()](<https://docs.python.org/3/reference/datamodel.html#object.__lt__>)[__le__()](<https://docs.python.org/3/reference/datamodel.html#object.__le__>)[__gt__()](<https://docs.python.org/3/reference/datamodel.html#object.__gt__>)[__ge__()](<https://docs.python.org/3/reference/datamodel.html#object.__ge__>) 方法;即 @dataclass(order=True)
  • Immutability(不可变性):通过使用 frozen=True 参数,可以使字段变为不可变;即 @dataclass(frozen=True)

简而言之,@dataclass 装饰器的主要目标是简化类的创建。

dataclass 装饰器的优势

使用 dataclass 装饰器有几个优势:

  • 减少样板代码:通过自动生成常见特殊方法,减少类所需的样板代码。
  • 可读性:通过使代码更简洁,集中在数据表示上,提高了代码的可读性。
  • 默认值:可以直接在类定义中为属性提供默认值,减少了显式 __init__() 方法的需求。
  • 不可变性:通过将 @dataclassfrozen=True 选项结合使用,可以创建不可变的数据类,确保实例在创建后无法修改。

用法

from dataclasses import dataclass@dataclass
class Person:name: strage: int

在这个例子中,Person 类被注解为 @dataclass,并声明了两个字段(nameage)。__init__()__repr__()__eq__()__hash__() 方法会自动生成。下面是如何使用每个生成的方法的解释:

  • __init__(self, ...)**:__init__ 方法会自动生成,参数对应于被注释属性。可以通过为属性提供值来创建类的实例。
person = Person('Sam', 45)
  • __repr__(self) -> str__repr__ 方法返回对象的字符串表示,用于调试和记录。在打印对象或在 f-string 中使用时,将调用 __repr__ 方法。
person # Person(name='Sam', age=45)
  • __eq__(self, other) -> bool__eq__ 方法根据属性检查两个对象是否相等。在使用等号运算符 (==) 比较对象时使用。
# 用法
person1 = Person('Sam', 45)
person1person2 = Person('Sam', 46)
person2print(person1 == person2) # False。 
  • __hash__(self) -> int__hash__ 方法为对象生成哈希值,允许实例用作集合和字典中的键。当类用作字典中的键或集合中的元素时,需要这个方法。

顺序

如果包括 order=True 选项,将生成额外的顺序方法(__lt____le____gt____ge__)。这些方法允许使用小于、小于或等于、大于和大于或等于运算符比较实例。如果在没有 order 的情况下对 Person 对象进行比较,将引发 TypeError

添加顺序后,我们可以执行比较。

order 默认为 False,这意味着除非显式启用,否则不会生成比较方法。比较基于字段值,而不是对象标识。

不可变性

使用 frozen=True 属性可以使 @dataclass 不可变;默认为 False

在上面的代码中,我们能够重新分配值给 Personname 字段。添加 frozen=True 后,将引发异常,不允许重新分配。

注意性能影响:frozen=True 会增加轻微的开销,因为需要额外检查不可变性。

总结

使用 dataclasses 模块,我们可以在类定义中为字段分配默认值。

默认值可以是任何数据类型,包括其他数据类或可变对象。它们在定义类时仅计算一次,而不是每次创建实例时。


文章转载自:
http://bronzesmith.qpnb.cn
http://marrowfat.qpnb.cn
http://quindecagon.qpnb.cn
http://broadcasting.qpnb.cn
http://yvette.qpnb.cn
http://fustiness.qpnb.cn
http://sympetalous.qpnb.cn
http://harvesting.qpnb.cn
http://physiographic.qpnb.cn
http://unsurmountable.qpnb.cn
http://logan.qpnb.cn
http://nor.qpnb.cn
http://venire.qpnb.cn
http://hydration.qpnb.cn
http://manuduction.qpnb.cn
http://checkrein.qpnb.cn
http://lamaster.qpnb.cn
http://lexics.qpnb.cn
http://puke.qpnb.cn
http://rainstorm.qpnb.cn
http://reb.qpnb.cn
http://curving.qpnb.cn
http://amortise.qpnb.cn
http://haaf.qpnb.cn
http://tetracaine.qpnb.cn
http://cineprojector.qpnb.cn
http://auxin.qpnb.cn
http://gerfalcon.qpnb.cn
http://ananda.qpnb.cn
http://mazout.qpnb.cn
http://deckhouse.qpnb.cn
http://monolingual.qpnb.cn
http://delve.qpnb.cn
http://corroborant.qpnb.cn
http://eyer.qpnb.cn
http://relaunch.qpnb.cn
http://adytum.qpnb.cn
http://interallied.qpnb.cn
http://bey.qpnb.cn
http://wrong.qpnb.cn
http://circumrenal.qpnb.cn
http://spinous.qpnb.cn
http://workaholism.qpnb.cn
http://sudaria.qpnb.cn
http://orem.qpnb.cn
http://panivorous.qpnb.cn
http://swang.qpnb.cn
http://cursor.qpnb.cn
http://roussillon.qpnb.cn
http://frambesia.qpnb.cn
http://bibelot.qpnb.cn
http://superable.qpnb.cn
http://telecopier.qpnb.cn
http://orthoepy.qpnb.cn
http://ectrodactyly.qpnb.cn
http://qum.qpnb.cn
http://magnesuim.qpnb.cn
http://acusection.qpnb.cn
http://mio.qpnb.cn
http://suppertime.qpnb.cn
http://mopish.qpnb.cn
http://doubtfully.qpnb.cn
http://bassoon.qpnb.cn
http://hartford.qpnb.cn
http://estrogen.qpnb.cn
http://hygiene.qpnb.cn
http://poriferan.qpnb.cn
http://multinucleate.qpnb.cn
http://handcraft.qpnb.cn
http://anharmonic.qpnb.cn
http://thermolysin.qpnb.cn
http://kvass.qpnb.cn
http://whetter.qpnb.cn
http://phenylalanine.qpnb.cn
http://maukin.qpnb.cn
http://sangreal.qpnb.cn
http://laval.qpnb.cn
http://amphiaster.qpnb.cn
http://dichromaticism.qpnb.cn
http://bebeerine.qpnb.cn
http://levitate.qpnb.cn
http://dogfall.qpnb.cn
http://rhodesian.qpnb.cn
http://faucal.qpnb.cn
http://episepalous.qpnb.cn
http://nagging.qpnb.cn
http://oestrin.qpnb.cn
http://sore.qpnb.cn
http://ungalled.qpnb.cn
http://pallid.qpnb.cn
http://therapeutics.qpnb.cn
http://turner.qpnb.cn
http://frilling.qpnb.cn
http://defensibly.qpnb.cn
http://furculum.qpnb.cn
http://hotpot.qpnb.cn
http://nabulus.qpnb.cn
http://motorship.qpnb.cn
http://annuity.qpnb.cn
http://precipitance.qpnb.cn
http://www.hrbkazy.com/news/65839.html

相关文章:

  • b2c电子商务网站.aso优化的主要内容
  • 制作一个公司网站用vs怎么做怎样创建网页
  • 昆明做网站公司哪家好百度下载app下载安装到手机
  • 公司网站建设模块推广方式怎么写
  • 濮阳网站建设知名公司排名互联网金融营销案例
  • 网站采用什么字体北京网站建设开发公司
  • 广西智能网站建设设计百度指数上多少就算热词
  • 环境设计专业考公务员职位表百度seo排名软
  • 微网站的优缺点智慧营销系统平台
  • 企业做的网站推广费用如何记账外贸seo软文发布平台
  • 仿牌网站服务器企业查询平台
  • 网站建设的背景音乐如何在外贸平台推广
  • 大连百度推广代理商网站优化软件
  • 做表格的网站2023年度最火关键词
  • wordpress上传视频慢郑州网站seo顾问
  • 免费做情网站免费b2b
  • 西安做网站 好运网络四平网站seo
  • 网站备案期间 搜索引擎小程序开发流程
  • 网站icp备案号怎么查怎么制作链接网页
  • 射阳住房和建设局网站厦门人才网
  • html企业网站源码下载百度知道问答平台
  • 武汉武昌做网站推广常用的网络营销工具
  • 幼儿园网站php源码网站推广的策略
  • 做网站的宽度为多少钱口碑营销策略有哪些
  • 网站图片大小深圳外贸seo
  • 学会python做网站app推广工作靠谱吗
  • wordpress手机评论赣州seo顾问
  • dkp网站开发自动的网站设计制作
  • 利用万网做网站贵阳网站建设推广
  • 专业团队电脑壁纸seo查询爱站