-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSetters_Property_Decorators.py
45 lines (33 loc) · 1.2 KB
/
Setters_Property_Decorators.py
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Employee:
def __init__(self, fname, lname):
self.fname = fname
self.lname = lname
# self.email = f"{fname}.{lname}@codewithharry.com"
def explain(self):
return f"This employee is {self.fname} {self.lname}"
@property
def email(self):
if self.fname==None or self.lname == None:
return "Email is not set. Please set it using setter"
return f"{self.fname}.{self.lname}@codewithharry.com"
@email.setter
def email(self, string):
print("Setting now...")
names = string.split("@")[0]
self.fname = names.split(".")[0]
self.lname = names.split(".")[1]
@email.deleter
def email(self):
self.fname = None
self.lname = None
hindustani_supporter = Employee("Hindustani", "Supporter")
# nikhil_raj_pandey = Employee("Nikhil", "Raj")
print(hindustani_supporter.email)
hindustani_supporter.fname = "US"
print(hindustani_supporter.email)
print(hindustani_supporter.fname)
del hindustani_supporter.email
print(hindustani_supporter.email)
print(hindustani_supporter.email)