python3.7新增data类

从3.7版本开始,python提供了 data 类。与常规类或其他替代方法(如返回多个值或字典)相比,有以下几个优点:

  • 数据类需要至少一定数量的代码
  • 可以通过 eq 方法来比较不同的data类对象
  • 可以 repr 通过很容易地打印一个数据类来进行调试
  • 数据类需要类型提示,因此减少了 bug

一个data类的例子如下:

from dataclasses import dataclass

@dataclass
class Card:
    rank: str
    suit: str

card = Card("Q", "hearts")

print(card == card)
# True

print(card.rank)
# ‘Q‘

print(card)
Card(rank=‘Q‘, suit=‘hearts‘)

原文地址:https://www.cnblogs.com/wangbin2188/p/12552918.html

时间: 2024-10-26 08:35:24

python3.7新增data类的相关文章

Python3.2官方文档翻译---类一些说明

6.4 一些说明 数据属性可以重写同名的方法属性.这是为了避免在大型系统中产生问题的意外名称冲突.所以用一些减少冲突的常用方法是很有效果的.常用的方法包括:大写字母方法名称,用唯一的字符串来做为数据属性的名称(可以是个下划线_)或者用动词命名方法和用名字命名数据属性. 数据属性就像和对象的普通用户一样可以被方法引用.换句话说,类不能用来实现纯净的数据类型.事实上,在python中不能强制数据隐藏,一切基于约定.(另一方面,如C中写的,python的实现可以做到完全隐藏实现细节并且在必要是可以控制

Python3.2官方文档翻译--类备注和异常也是类

6.7备注 有时有个像Pasca中"记录"和C中"数据体"的数据类型非常有用.集合一些数据项.一个空类定义可以清楚地显示: class Employee: pass john = Employee() # Create an empty employee record # Fill the fields of the record john.name = 'John Doe' john.dept = 'computer lab' john.salary = 1000

CSS选择符、属性继承、优先级算法以及CSS3新增伪类、新特性

CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?CSS新增了哪些特性?下面我整理了一些,仅供参考. CSS 选择符: 1)      id选择器(# myid) 2)      类选择器(.myclassname) 3)      标签选择器(div, h1, p) 4)      相邻选择器(h1 + p) 5)      子选择器(ul > li) 6)      后代选择器(li a) 7)      通配符选择器( * ) 8)      属性选择器

css新增伪类

css3新增伪类 :first-of-type p:first-of-type 选择属于其父元素首 <p> 元素每 <p> 元素 :last-of-type p:last-of-type 选择属于其父元素 <p> 元素每 <p> 元素:only-of-type p:only-of-type 选择属于其父元素唯 <p> 元素每 <p> 元素:only-child p:only-child 选择属于其父元素唯元素每 <p> 元

python3 load Iris.data数据集出现报错key words: b&#39;Iris-setosa&#39;

通过搜索原因,发现有可能是在对文件读取是编译出现了问题,并且Keyword中提示b'Iris-setosa',而我们的string转float函数中没有字母b,很奇怪.所以尝试将转换函数所有的string前加b.结果发现数据读取正常.下边附上转换函数: def iris_type(s): it = {b'Iris-setosa': 0, b'Iris-versicolor': 1, b'Iris-virginica': 2} return it[s] python3 load Iris.data

Python - python3.7新增的contextvars vs Thread local(threading.local)

总结 和threading.local()类似.Python3.7新增. thread.local(): 不同线程,同一个变量保存不同的值. contextvars: 不同上下文,同一个变量保存不同的值.例如:同一线程,不同的协程或者异步并发的任务(例如asyncio)的情况下同一个变量有不同的值. 参考 https://realpython.com/python37-new-features/#context-variables https://www.dongwm.com/post/137/

python3.5 的str类型和bytes类型的转换

在python3.x里增加了bytes类型,并且对str方法进行了修改,让str类型和bytes类型可以相互转换. #!/usr/bin/env python # -*- coding:utf-8 -*- a = "哈哈" #字符串转换成字节 b = bytes(a,encoding='utf-8') print(b) b1 = bytes(a,encoding='gbk') print(b1) #将字节转换成字符 c=str(b,encoding='utf-8') print(c)

Python3.2官方文档翻译-- 类定义语法和类对象

6.3 初识类 类引入一些新语法:三种新的对象类型和一些新的语义. 6.3.1 类定义语法 类定义的最简单形式如下: class ClassName: <statement-1> . . . <statement-N> 类定义和函数定义(def语句)一样,必须先执行然后才生效.(你当然可以把类定义放在if语句分支中或者嵌入在函数中) 在实际情况中,在类定义中的语句常常是方法的定义,但是其他语句也是允许的并且有时是很有用的---以后我们会讨论到这点.在类中的定义方法通常有一个参数列表

python3+requests:使用类封装接口测试脚本

前言:接口测试用例较多,我们不可能每个用例都写一次requests,get或者requests,post等,所以对共用方法要进行封装处理 第一次修改:将get请求和post请求单独定义出来,使用过程中根据不同类型的请求直接调用对应的方法 1 import requests 2 import json 3 4 def send_post(url,data,headers): 5 response = requests.post(url=url,data=data,headers=headers).