首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏北洋csdn

    Kotlin之DataClass学习

    数据类 dataclass: 顾名思义数据类只应关心data(和具体行为解耦)。 不应产生副作用 使用心得 一,在使用dataClass数据类时应尽量保证其和java中的JavaBean功能一致,只提供属性访问和赋值功能,不应提供复杂的业务逻辑。

    49820编辑于 2022-05-06
  • 来自专栏python3

    Python3.7 dataclass使

    本文将带你走进python3.7的新特性dataclass,通过本文你将学会dataclass的使用并避免踏入某些陷阱。 dataclass简介 dataclass的使用 定义一个dataclass 深入dataclass装饰器 数据类的基石——dataclasses.field 一些常用函数 dataclass继承 总结 dataclass简介 dataclass的定义位于PEP-557,根据定义一个dataclass是指“一个带有默认值的可变的namedtuple”,广义的定义就是有一个类,它的属性均可公开访问, dataclass的使用 我们分x步介绍dataclass的使用,首先是如何定义一个dataclass。 深入dataclass装饰器 dataclass的魔力源泉都在dataclass这个装饰器中,如果想要完全掌控dataclass的话那么它是你必须了解的内容。

    1.4K10发布于 2020-02-10
  • 来自专栏Python七号

    dataclass 来帮你!

    Python 3.7 增加了一个标准库 dataclasses,里面有个装饰器叫 dataclass,非常实用,可以大大提升代码的可读性,最重要的是它让你少写很多代码,从而大大节省你的时间,今天就来说说为什么你需要 dataclass。 有,这就是今天的 dataclass,借助于 dataclass,只需要这样就可以了: from dataclasses import dataclass @dataclass(frozen=True, 如果要加一个字段 author_id,直接加就可以了,一点也不麻烦: from dataclasses import dataclass @dataclass(frozen=True, order=True 当然可以,比如说我们有一个 class,包含姓名、年龄、身高,我们不希望姓名参与比较,就可以这样写: from dataclasses import dataclass,field @dataclass

    62130发布于 2021-11-04
  • 来自专栏雷子说测试开发

    Python3.7 新特性——dataclass装饰器

    ,那么这个类就可以称为dataclass,再通俗点讲,dataclass就是一个含有数据及操作数据方法的容器。 与类的区别 相比普通class,dataclass通常不包含私有属性, 数据可以直接访问 dataclass的repr方法通常有固定格式, 会打印出类型名以及属性名和它的值 dataclass拥有__eq__ 、__hash__ dataclass有着模式单一固定的构造方式,或是需要重载运算符,而普通class通常无需这些工作 配合类型注解语法, 我们可以轻松生成一个实现了__init__,__repr__,__cmp__等方法的dataclass: 如何用: from dataclasses import dataclass @dataclass 更高级 from dataclasses import dataclass from typing import List @dataclass class Position: name:

    59410编辑于 2023-12-26
  • 来自专栏软件测试学习

    Python中的dataclass:简化数据类的创建

    Python中的dataclass是一个装饰器,用于自动添加一些常见的方法,如构造函数、__repr__、__eq__等。它简化了创建数据类的过程,减少了样板代码,提高了代码的可读性和可维护性。 让我们看一个简单的例子来说明dataclass的用法: from dataclasses import dataclass @dataclass class User: name: str 在这个简单的例子中,dataclass自动为我们创建了以下方法: __init__: 自动添加了带有name和age参数的构造函数,我们可以用User("小博", 18)的形式创建对象。 接下来让我们看一下dataclass的对象之间怎么比较 from dataclasses import dataclass, field @dataclass(order=True) class Person Charlie 35 175.2 Bob 25 185.2 Bob 25 170.0 Alice 30 185.5 Alice 35 175.2 要让类的实例对象之间进行比较,需要在定义类的时候,加上@dataclass

    85230编辑于 2023-09-01
  • 来自专栏爬虫资料

    如何用 Python 的 dataclass 和 typing 模块实现字段 tag 功能

    Python 中的 dataclass 和 typing 模块实现类似 Go 语言的字段 tag 功能,使得我们可以给类的字段添加元数据,从而实现对这些字段的序列化、反序列化、校验等操作。 具体来说,使用 dataclass 装饰器可以简化类的定义,省略了繁琐的构造函数和属性定义,从而使得代码更加简洁、易于阅读和维护。 首先,你需要导入 dataclass 和 typing 模块: from dataclasses import dataclass, field from typing import List 然后,你可以用 dataclass 装饰器定义一个类,并用 field 函数给每个字段添加元数据。 name 字段的元数据里有一个 serializer 和一个 validator,分别用来把 name 字段转成小写字母和检查长度是否小于等于 20: @dataclass class Person:

    82620编辑于 2023-03-07
  • 来自专栏追不上乌龟的兔子

    初识Python3.7的dataclasses标准库

    from dataclasses import dataclass @dataclass class InventoryItem: '''Class for keeping track of an ...: @dataclass ...: class InventoryItem: ...: '''Class for keeping track of an item in 按照提示,我们应该制定nums的默认工厂函数: In [1]: from dataclasses import dataclass,field In [2]: @dataclass ...: class 我们来定义一个稍微复杂一点的数据类 @dataclass class A: a:int @dataclass class B: name:str a_list:List[A] In [1]: from dataclasses import dataclass,asdict In [2]: from typing import List In [3]: @dataclass

    94710编辑于 2023-04-13
  • 来自专栏从零开始学自动化测试

    pydantic学习与使用-5.dataclasses 数据类的学习使用

    前言 python3.7 的新特性 dataclassdataclass是指“一个带有默认值的可变的namedtuple”,广义的定义就是有一个类,它的属性均可公开访问。 dataclass简介 dataclass 的属性可以带有默认值并能被修改,而且类中含有与这些属性相关的类方法,那么这个类就可以称为dataclass, 再通俗点讲,dataclass就是一个含有数据及操作数据方法的容器 相比普通class,dataclass通常不包含私有属性,数据可以直接访问 dataclass的repr方法通常有固定格式,会打印出类型名以及属性名和它的值 dataclass拥__eq__和__hash 简单示例 dataclasses 数据类简单示例 from dataclasses import dataclass from typing import List @dataclass class from datetime import datetime from pydantic.dataclasses import dataclass @dataclass class User:

    2K20编辑于 2022-03-03
  • Python `__slots__` 进阶指南:不止于节省内存,从原理到实践

    既然都是用于数据类的定义,@dataclass 和 __slots__ 是什么关系? 让我们先看一个例子:from dataclasses import dataclass# 普通dataclass@dataclassclass TradeNormal: symbol: str 最佳实践:@dataclass 和 __slots__ 的协同使用Python 3.10+ 的推荐用法:@dataclass(slots=True, frozen=True)class Position 使用 @dataclass(slots=True) 的场景:类的属性在定义后不会改变需要类型提示和自动生成方法Python 3.10+环境注重内存效率使用普通 @dataclass 的场景:需要动态添加属性使用了某些需要 :@dataclass(slots=True)class Parent: x: int@dataclass(slots=True)class Child(Parent):y: int# Child

    99300编辑于 2024-12-17
  • 来自专栏追不上乌龟的兔子

    初识 Python3.7 的 dataclasses 标准库

    from dataclasses import dataclass @dataclass class InventoryItem: '''Class for keeping track of an ...: @dataclass ...: class InventoryItem: ...: '''Class for keeping track of an item in 按照提示,我们应该制定nums的默认工厂函数: In [1]: from dataclasses import dataclass,field In [2]: @dataclass ...: class 我们来定义一个稍微复杂一点的数据类 @dataclass class A: a:int @dataclass class B: name:str a_list:List[A] In [1]: from dataclasses import dataclass,asdict In [2]: from typing import List In [3]: @dataclass

    1.6K31发布于 2020-03-06
  • 来自专栏信数据得永生

    SqlAlchemy 2.0 中文文档(七)

    从PEP 484的类型化角度来看,该类被认为具有特定于 Dataclass 的行为,最重要的是通过利用PEP 681“数据类转换”,使类型工具可以将该类视为明确使用了@dataclasses.dataclass SQLAlchemy 的MappedAsDataclass类和registry.mapped_as_dataclass()方法直接调用 Python 标准库的dataclasses.dataclass类装饰器 新功能版本 2.0.4:为MappedAsDataclass和registry.mapped_as_dataclass()添加了dataclass_callable类和方法参数,并调整了一些数据类内部, 从PEP 484的类型学角度来看,该类被认为具有 Dataclass 特定的行为,最值得注意的是通过利用PEP 681“Dataclass Transforms”,这允许类型工具将该类视为明确使用@dataclasses.dataclass 与 Pydantic 等替代 Dataclass 提供程序集成 警告 Pydantic 的 dataclass 层与 SQLAlchemy 的类仪器化不完全兼容,需要额外的内部更改,许多功能,如相关集合

    1.2K20编辑于 2024-06-26
  • 来自专栏me的随笔

    Python日志和配置库

    from src.config.config import settings ​ ​ @dataclass class Person: name: str age: int ​ ​ p from loguru import logger @dataclass class Person: name: str age: int person = Person(" _config import settings @dataclass class AppOptions: log: LogOptions server: ServerOptions @dataclass class LogOptions: level: str file_path: str enqueue: bool rotation: int | str retention: int encoding: str @dataclass class ServerOptions: port: int options

    79530编辑于 2023-07-09
  • 来自专栏编程思想之路

    初始化

    那么初始化的顺序在很大程度上可以决定运行时的空指针异常,接下来是分析初始化顺序 因为基本数据类型有默认的初始化值,所以不用考虑在内,主要是引用数据类型的初始化顺序, 有三个类, public class DataClass { public DataClass(String str) { // TODO Auto-generated constructor stub System.out.println("DataClass : "+str); } } 还有它的子类: public class SubDataClass extends DataClass{ public SubDataClass(String str SubDataClass的父类, SubDataClass是ThirdDataClass的父类, 然后在一个类中去创建这些类的对象 public class FiledInitOrder { DataClass data = new DataClass("data"); static DataClass static_data = new DataClass("static_data"); SubDataClass

    97820编辑于 2022-05-07
  • 来自专栏猫哥的专栏

    [Glide4源码解析系列] — 3.Glide数据解码与转码

    .getLoadPath(dataClass, resourceClass, transcodeClass); } //获取LoadPath public <Data, TResource , Transcode> LoadPath<Data, TResource, Transcode> getLoadPath( @NonNull Class<Data> dataClass, 转载解码器和转码器到LoadPath中 result = new LoadPath<>( dataClass, resourceClass , transcodeClass, decodePaths, throwableListPool); } loadPathCache.put(dataClass, resourceClass Transcode> List<DecodePath<Data, TResource, Transcode>> getDecodePaths( @NonNull Class<Data> dataClass

    1.1K20发布于 2020-04-01
  • 来自专栏Unity3D

    【Unity3D日常】使用Unity3D读取Json、XML、Excel文件

    str.ReadToEnd(); str.Close(); //数据解析并把数据保存到m_PersonData1 变量中 DataClassList dataClass = JsonUtility.FromJson<DataClassList>(readData); foreach (var item in dataClass.Data_Class) = new Data_Class(); dataClass.Id = item.ChildNodes.Item(0).InnerText; dataClass.Name = item.ChildNodes.Item(1).InnerText; dataClass.Score = item.ChildNodes.Item (2).InnerText; dataList.Add(dataClass); } //打印数据

    3.8K20编辑于 2022-08-07
  • 来自专栏从零开始学自动化测试

    pydantic学习与使用-6.dataclasses 验证器

    validator 验证器也可以应用于 pydantic dataclasses. pydantic dataclasses pydantic 里面的 dataclassesdata 是 dataclasses.dataclass from datetime import datetime from pydantic import validator from pydantic.dataclasses import dataclass @dataclass class DemoDataclass: ts: datetime = None @validator('ts', pre=True, always=True validator 验证同样适用pre 和 each_item 验证器 from pydantic import validator from pydantic.dataclasses import dataclass from typing import List @dataclass class User(object): name: str age: int friends: List

    86130编辑于 2022-03-03
  • 来自专栏Python基础、进阶与实战

    Python高质量函数编写指南

    一次做好一件事 from dataclasses import dataclass from datetime import datetime @dataclass class Customer: 修改后: from dataclasses import dataclass from datetime import datetime # 验证和 函数 def luhn_checksum(card_number from dataclasses import dataclass from datetime import datetime def luhn_checksum(card_number: str) class Card: number: str exp_month: int exp_year: int valid: bool = False @dataclass from dataclasses import dataclass from enum import StrEnum, auto FIXED_VACATION_DAYS_PAYOUT = 5 class

    26310编辑于 2024-04-18
  • python hook dacite库实现类型强制转换

    , "max":100 } } 从配置里面取数据很简单嘛,把json转成dict,直接data["字段名"]就可以取数据,为了规范化,方便以后随时能知道接口有哪些字段,我使用了dataclass 来定义,并用dacite库加载数据类 定义dataclass from dataclasses import dataclass import dacite @dataclass class Config 我只能把dataclass的定义全改成str类型,定义如下: @dataclass class Config: id: str min: str max: str 可这样也太麻烦了吧

    35410编辑于 2024-05-31
  • 来自专栏Python基础、进阶与实战

    Python 高质量类编写指南

    from dataclasses import dataclass from email.message import EmailMessage from smtplib import SMTP_SSL 精简类 @dataclass class Person: name: str age: int address_line_1: str address_line_2: str from dataclasses import dataclass from functools import cached_property from email_tools.service import 使用依赖注入(dependency injection) from dataclasses import dataclass from functools import lru_cache from typing from dataclasses import dataclass from functools import lru_cache, partial from typing import Protocol

    26110编辑于 2024-04-30
  • 来自专栏啃书

    啃书-- 流畅的python 第五章 数据类构建器

    数据类构建器主要介绍以下三种构建方法:collections.namedtuple typing.NameTuple@dataclass1. collections.namedtuple构建: 1) namedtuple @dataclass@dataclass 是 Python 的一个装饰器,用于自动生成类的一些常用方法,如 __init__、__repr__、__eq__ 等。 不需要显式地定义这些方法,dataclass 会根据类的字段自动生成。 from dataclass import dataclass@dataclass(*,init =True, repr=True,eq=True,order=False,unsafe_hash=False 2) 类属性通常作为实例属性的默认值,dataclass 也是如此。

    30910编辑于 2025-02-10
领券