-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetter_getter.py
More file actions
29 lines (22 loc) · 774 Bytes
/
setter_getter.py
File metadata and controls
29 lines (22 loc) · 774 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Human:
def __init__(self, name: str, age: int) -> None:
self.name: str = name
self.age: int = age
self.full_info: str = f'{self.name}, {self.age}'
self._address: str | None = None
@property
def address(self) -> str | None:
return f'Address: {self._address}' if self._address else 'Address is not set yet'
@address.setter
def address(self, new_address: str) -> None:
self._address = new_address
print(f'Address is set to {new_address}')
def __len__(self) -> int:
return self.age
def main() -> None:
obj: Human = Human('Matin Ghorbani', 17)
print(obj.address)
obj.address = 'Mashhad, Iran'
print(obj.address)
if __name__ == '__main__':
main()