-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path30_Constructor.py
More file actions
151 lines (106 loc) · 3.28 KB
/
30_Constructor.py
File metadata and controls
151 lines (106 loc) · 3.28 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# Constructor :
class Student :
def __init__(self, name, age, roll) :
self.name = name
self.age = age
self.roll = roll
def printDetails(self) :
print(f'Name : {self.name}')
print(f'Age : {self.age}')
print(f'Roll : {self.roll}')
s = Student('Priyanka', 24, 1024)
s.printDetails()
# b) Constructor will execute only once per object
class Employee :
def __init__(self, name, age, eid) :
self.name = name
self.age = age
self.eid = eid
def printDetails(self) :
print(f'Name : {self.name}')
print(f'Age : {self.name}')
print(f'Employee ID : {self.eid}')
e = Employee('Rahul', 27, 12345)
e.printDetails()
e.printDetails()
e.printDetails()
# c)
class Faculty() :
def __init__(self, name, age, sal) :
self.name = name
self.age = age
self.sal = sal
def printDetails(self) :
print('-'*20)
print(f'Name : {self.name}')
print(f'Age : {self.age}')
print(f'Salary : {self.sal}')
f1 = Faculty('Dr. Chand', 30, 20000)
f1.printDetails()
f2 = Faculty('Dr. Suresh', 31, 70000)
f2.printDetails()
print('-'*20)
# d) Define a class without constructor :
class Employee :
def companyName(self) : #Here we did not create any constructor but python will add one default constructor behind the screen.
print('Company Name is ABC pvt.ltd.')
e = Employee()
e.companyName()
print('-'*20)
# e) If we will call the constructor manually then python will treat it as a normal method call.
class Computer :
def __init__(self) :
print('This is a Computer')
c1 = Computer() # Constructor will execute automatically
c1.__init__() # Python will treat __init__(self) as a normal python method
c1.__init__()
c1.__init__()
print('-'*20)
# f)
class Student :
def __init__(self, name, age, roll) :
self.name = name
self.age = age
self.roll = roll
def printDetails(self) :
print(f'Name : {self.name}')
print(f'Age : {self.age}')
print(f'Roll : {self.roll}')
s1 = Student('Priyanka', 23, 112233)
s1.printDetails()
s1.__init__('Rahul', 24, 1025)
s1.printDetails()
print('-'*20)
# g) We can not create multiple constructor a single class :
class Laptop :
def __init__(self, lname, date) :
self.lname = lname
self.date = date
def __init__(self, price) :
self.price = price
def printDetails(self) :
print(f'Laptop Name : {self.lname}')
print(f'Laptop Date : {self.date}')
print(f'Laptop Price : {self.price}')
l1 = Laptop('HP', 17-8-2012, 485000)
l1.printDetails()
l1.__init__('Dell', 20-3-2023, 50000)
l1.printDetails()
# Types of Constructor :
# Non-Parameterize Constructor :
class Employee :
def __init__(self) :
print('Here is a constructor')
e1 = Employee()
# Parameterized Constructor :
class College :
def __init__(self, name, area) :
self.name = name
self.area = area
c1 = College('DTU', 'BBSR')
# Default Constructor :
class Faculty :
def facultyName(self) :
print('Faculty Name is Dr. Arun Tripathy')
f1 = Faculty()
f1.facultyName()