gpt4 book ai didi

python - 相当于Scala案例类的Python

转载 作者:行者123 更新时间:2023-12-04 02:41:39 27 4
gpt4 key购买 nike

是否有与Scala的Case类等效的Python?就像自动生成分配给字段的构造函数而无需写出样板一样。

最佳答案

当前的现代方法(自Python 3.7起)使用data class。例如,Scala case class Point(x: Int, y: Int)变为:

from dataclasses import dataclass

@dataclass(frozen=True)
class Point:
x: int
y: int


frozen=True部分是可选的;您可以忽略它以获得可变数据类。为了与Scala的案例类相当,我将其包括在内。

在Python 3.7之前,存在 collections.namedtuple

from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])


命名元组是不可变的,因为它们是元组。如果要添加方法,则可以扩展namedtuple:

class Point(namedtuple('Point', ['x', 'y'])):
def foo():
pass

关于python - 相当于Scala案例类的Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51342228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com