81 lines
715 B
Python
81 lines
715 B
Python
from typing import Any, List
|
|
|
|
import attr
|
|
|
|
|
|
# Typing via "type" Argument ---
|
|
|
|
|
|
@attr.s
|
|
class C:
|
|
a = attr.ib(type=int)
|
|
|
|
|
|
c = C(1)
|
|
C(a=1)
|
|
|
|
|
|
@attr.s
|
|
class D:
|
|
x = attr.ib(type=List[int])
|
|
|
|
|
|
@attr.s
|
|
class E:
|
|
y = attr.ib(type="List[int]")
|
|
|
|
|
|
@attr.s
|
|
class F:
|
|
z = attr.ib(type=Any)
|
|
|
|
|
|
# Typing via Annotations ---
|
|
|
|
|
|
@attr.s
|
|
class CC:
|
|
a: int = attr.ib()
|
|
|
|
|
|
cc = CC(1)
|
|
CC(a=1)
|
|
|
|
|
|
@attr.s
|
|
class DD:
|
|
x: List[int] = attr.ib()
|
|
|
|
|
|
@attr.s
|
|
class EE:
|
|
y: "List[int]" = attr.ib()
|
|
|
|
|
|
@attr.s
|
|
class FF:
|
|
z: Any = attr.ib()
|
|
|
|
|
|
# Inheritance --
|
|
|
|
|
|
@attr.s
|
|
class GG(DD):
|
|
y: str = attr.ib()
|
|
|
|
|
|
GG(x=[1], y="foo")
|
|
|
|
|
|
@attr.s
|
|
class HH(DD, EE):
|
|
z: float = attr.ib()
|
|
|
|
|
|
HH(x=[1], y=[], z=1.1)
|
|
|
|
|
|
# same class
|
|
c == cc
|