Странный атрибут Python - PullRequest
       2

Странный атрибут Python

0 голосов
/ 30 сентября 2018

Я проходил онлайн-курс по Python 3, и было упражнение.Вы должны написать класс с именем Foo, который имеет свойство с именем x, которое устанавливается в соответствии со следующими правилами:

  • При создании класса Foo начальное значение x равно 0.При установке x с номером: Если число неотрицательное, две цифры справа от него сохраняются в x.

    p = Foo ()

    print(px) -----> вывод: 0

    px = 123

    печать (px) -----> вывод: 23

Мне просто интересно, как х получает назначение через объект.

>>> p=Foo()
>>> p.x = 1234
>>> p.x == 34
True
>>> type(p.x)
<class 'int'>

1 Ответ

0 голосов
/ 01 октября 2018
class Foo():
def __init__(self):
    self.n=0
@property
def x(self):
    return self.n
@x.setter
def x(self, num):

    if num<100 and num>=0:
        self.n=num
    elif num>100 and num%100!=0 :
        self.n=num%100
    elif num<0:
        self.n=-1
    else:
        self.n=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...