forked from alamm4521/python_test_codes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Py_Classes_Objects.py
189 lines (125 loc) · 4.38 KB
/
Py_Classes_Objects.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
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
'''
Python Classes and Objects
Python Classes/Objects
Python is an object oriented programming language.
Almost everything in Python is an object, with its properties and methods.
A Class is like an object constructor, or a "blueprint" for creating objects.
Create a Class
To create a class, use the keyword class:
'''
#Create a class named MyClass, with a property named x:
print("Create a class named MyClass, with a property named x:")
'''class Myclass:
x = 5
print(Myclass) '''
'''
Create Object
Now we can use the class named MyClass to create objects:
Example
Create an object named p1, and print the value of x:
'''
'''class Myclass_1:
x = 5
p1 = Myclass_1()
print(p1.x)'''
'''
The __init__() Function
The examples above are classes and objects in their simplest form, and are not really useful in real life applications.
To understand the meaning of classes we have to understand the built-in __init__() function.
All classes have a function called __init__(), which is always executed when the class is being initiated.
Use the __init__() function to assign values to object properties, or other operations that are necessary to do when the object is being created:
'''
'''#Example
#Create a class named Person, use the __init__() function to assign values for name and age:'''
'''print("Example Create a class named Person, use the __init__() function to assign values for name and age:")'''
'''class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("jone", 36)
print(p1.name)
print(p1.age)
p2 = Person("jakccy", 14)
print(p2.name)
print(p2.age)'''
'''
The __str__() Function
The __str__() function controls what should be returned when the class object is represented as a string.
If the __str__() function is not set, the string representation of the object is returned:
'''
'''Example
The string representation of an object WITHOUT the __str__() function:'''
'''print("Example The string representation of an object WITHOUT the __str__() function:")'''
'''class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
try:
print(p1)
except:
print("<__main__.Person object at 0x15039e602100>")'''
#Example
#The string representation of an object WITH the __str__() function:
class person001:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}({self.age})"
p_001 = person001("calso", "18")
print(p_001.name)
print(p_001.age)
print(p_001)
'''
Object Methods
Objects can also contain methods. Methods in objects are functions that belong to the object.
Let us create a method in the Person class:
'''
#Example
#Insert a function that prints a greeting, and execute it on the p1 object:
print("#Example #Insert a function that prints a greeting, and execute it on the p_002 object:")
class Person002:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("this is 70s show " + self.name)
p_002 = Person002("Fezz", 17)
p_002.myfunc()
'''Note: The self parameter is a reference to the current instance of the class,
and is used to access variables that belong to the class.'''
'''
The self Parameter
The self parameter is a reference to the current instance of the class, and is used to access variables that belongs to the class.
It does not have to be named self , you can call it whatever you like, but it has to be the first parameter of any function in the class:
'''
'''
Example
Use the words mysillyobject and abc instead of self:
'''
print("Example Use the words mysillyobject and abc instead of self:")
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John", 36)
p1.myfunc()
p1.age = 455555
print(p1.age)
del p1.age
try:
print(p1.age)
except:
print("Traceback (most recent call last): AttributeError: 'Person' object has no attribute 'age'")
del p1
try:
print(p1)
except:
print("Traceback (most recent call last): NameError: 'p1' is not defined")
class Person_004:
pass
# having an empty class definition like this, would raise an error without the pass statement
print(" having an empty class definition like this, would raise an error without the pass statement")