Python Class "Constants" 在数据类中
Python Class "Constants" in Dataclasses
理解以下不是真正的常量,尝试遵循 PEP 8 我想在 Python 3.7 中的@dataclass 中创建一个 "constant"。
@dataclass
class MyClass:
data: DataFrame
SEED = 8675309 # Jenny's Constant
我的代码曾经是:
class MyClass:
SEED = 8675309 # Jenny's Constant
def __init__(data):
self.data = data
这两个在处理种子方面是等价的吗?种子现在是 init/eq/hash 的一部分吗?这些常量是否有首选样式?
他们是一样的。 dataclass
在确定使用什么来生成 __init__
等时忽略未注释的变量。 SEED
只是一个未提示的 class 属性。
如果要为 class 属性提供类型提示,请使用 typing.ClassVar
指定类型,这样 dataclass
就不会将其误认为是实例属性.
from dataclasses import dataclass
from typing import ClassVar
@dataclass
class MyClass:
data: DataFrame
SEED: ClassVar[int] = 8675309
理解以下不是真正的常量,尝试遵循 PEP 8 我想在 Python 3.7 中的@dataclass 中创建一个 "constant"。
@dataclass
class MyClass:
data: DataFrame
SEED = 8675309 # Jenny's Constant
我的代码曾经是:
class MyClass:
SEED = 8675309 # Jenny's Constant
def __init__(data):
self.data = data
这两个在处理种子方面是等价的吗?种子现在是 init/eq/hash 的一部分吗?这些常量是否有首选样式?
他们是一样的。 dataclass
在确定使用什么来生成 __init__
等时忽略未注释的变量。 SEED
只是一个未提示的 class 属性。
如果要为 class 属性提供类型提示,请使用 typing.ClassVar
指定类型,这样 dataclass
就不会将其误认为是实例属性.
from dataclasses import dataclass
from typing import ClassVar
@dataclass
class MyClass:
data: DataFrame
SEED: ClassVar[int] = 8675309