예제 #1
0
class Foo:
    bar: int = field_property()

    def get_bar(self) -> int:
        return unwrap_property(self).bar

    def set_bar(self, value: int):
        unwrap_property(self).bar = value

    def del_bar(self):
        del unwrap_property(self).bar

    get_bar = field_property(bar).getter(get_bar)
    set_bar = field_property(bar).setter(set_bar)
    del_bar = field_property(bar).deleter(del_bar)
예제 #2
0
    class Foo:
        bar: int = field_property()

        @field_property(bar)
        def get_bar(self) -> int:
            if global_bar is None:
                raise AttributeError("bar")
            return global_bar

        def set_bar(self, value: int):
            nonlocal global_bar
            global_bar = value

        def del_bar(self):
            nonlocal global_bar
            global_bar = None

        set_bar = field_property(bar).setter(set_bar)
        del_bar = field_property(bar).deleter(del_bar)
예제 #3
0
    class Foo:
        bar: int = field_property(default=None)

        @field_property(bar)
        def get_bar(self):
            return 0
예제 #4
0
 class WithoutDefault:
     no_default: int = field_property(repr=False)
     field_property(no_default).setter(setter)
예제 #5
0
 class WithDefaultFactory:
     default_factory: int = field_property(default_factory=lambda: 1, repr=False)
     field_property(default_factory).setter(setter)
예제 #6
0
 class WithDefault:
     default: int = field_property(default=0, repr=False)
     field_property(default).setter(setter)
예제 #7
0
    class Foo:
        bar: int = field_property(init=False, raw=True)

        @field_property(bar)
        def get_bar(self) -> int:
            return 0
예제 #8
0
 class Foo:
     bar: int = field_property()
예제 #9
0
def test_invalid_field_property():
    with raises(ValueError, match=f"Invalid field property {None}"):
        field_property(None)
예제 #10
0
 class Inherited(WithDefault):
     default: int = field_property(default=0, repr=False)
예제 #11
0
    class Foo2(Foo):
        bar: int = field_property()

        getattr(field_property(bar), accessor)(mock)
예제 #12
0
    class Foo2(Foo):
        bar: int = field_property(**overridden_args)

        @field_property(bar)
        def get_bar(self):
            return unwrap_property(self).bar + 1