Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Attributes Annotations | Encapsulation
Object-Oriented Programming in Python

book
Attributes Annotations

Using annotations starting with @ symbol is a special way to define properties.

  • Write @property to define get() method;

  • Write @attribute.setter to define the set() method for the attribute.

We need to do that to explain to Python what these methods are going to be used for.

class Cat:

def __init__(self, name = 'Kitty', age = 1):
self.name = name
self.__age = age
self.__number_of_legs = 4

@property
def age(self):
return self.__age

@age.setter
def age(self, age):
if isinstance(age, int) and 0<=age<=30:
self.__age = age
else:
print('Invalid value of attribute age')

cat = Cat('Maggie', 3)
# Adding the wrong value
cat.age = -100
cat.age = 5
print(cat.age)
1234567891011121314151617181920212223
class Cat: def __init__(self, name = 'Kitty', age = 1): self.name = name self.__age = age self.__number_of_legs = 4 @property def age(self): return self.__age @age.setter def age(self, age): if isinstance(age, int) and 0<=age<=30: self.__age = age else: print('Invalid value of attribute age') cat = Cat('Maggie', 3) # Adding the wrong value cat.age = -100 cat.age = 5 print(cat.age)
copy

Note

  • First, define getter @property and after that – setter @attribute.setter;

  • Both methods have the same name, that is equal to the attribute name;

  • Now, to access the private attribute __age outside the class, you can use the cat.age expression;

question mark

Сhoose the wrong option.

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt