mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-31 17:45:48 +07:00
91 lines
1.7 KiB
Python
91 lines
1.7 KiB
Python
import dataclasses
|
|
from typing import ClassVar
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class A1:
|
|
bar1: int
|
|
<error descr="Fields with a default value must come after any fields without a default.">baz1</error>: int = 1
|
|
foo1: int
|
|
<error descr="Fields with a default value must come after any fields without a default.">bar2</error>: int = 2
|
|
baz2: int
|
|
foo2: int = 3
|
|
|
|
|
|
@dataclasses.dataclass()
|
|
class A2:
|
|
bar: int
|
|
baz: str = ""
|
|
foo: int = 5
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class A3:
|
|
bar1: int
|
|
baz1: ClassVar[int] = 1
|
|
foo1: int
|
|
bar2: ClassVar[int] = 2
|
|
baz2: int
|
|
foo2: int = 3
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class A4:
|
|
bar1: int
|
|
baz1: ClassVar = 1
|
|
foo1: int
|
|
bar2: ClassVar = 2
|
|
baz2: int
|
|
foo2: int = 3
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class B1:
|
|
a: int = dataclasses.field()
|
|
b: int
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class B2:
|
|
<error descr="Fields with a default value must come after any fields without a default.">a</error>: int = dataclasses.field(default=1)
|
|
b: int = dataclasses.field()
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class B3:
|
|
<error descr="Fields with a default value must come after any fields without a default.">a</error>: int = dataclasses.field(default_factory=int)
|
|
b: int = dataclasses.field()
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class C1:
|
|
x: int = dataclasses.MISSING
|
|
y: int
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class C2:
|
|
x: int = dataclasses.field(default=dataclasses.MISSING)
|
|
y: int
|
|
|
|
C2(1, 2)
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class C3:
|
|
x: int = dataclasses.field(default_factory=dataclasses.MISSING)
|
|
y: int
|
|
|
|
C3(1, 2)
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class D1:
|
|
x: int = 0
|
|
y: int = dataclasses.field(init=False)
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class E1:
|
|
foo = "bar" # <- has no type annotation, so doesn't count.
|
|
baz: str |