-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathw3school_classesandobjects.py
More file actions
146 lines (109 loc) · 3.51 KB
/
w3school_classesandobjects.py
File metadata and controls
146 lines (109 loc) · 3.51 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
# Python Classes / Objects
# Python is an object oriented programming language.
# Almost everthing 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
class MyClass:
x = 5
# Create an object
p1 = MyClass()
print(p1.x)
# The _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:
# E.g. Create a class name 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
print ("Welcome to the world", self.name + "!")
p1 = Person("Ikenna",42)
p2 = Person("Chioma", 41)
print(p1.name, "is", p1.age, "years old ")
"""
# The _str_() Function
# The __str__() function controls what should be returned when the class object is represented as a string.
# If the __str__() is not set, the string representation of the object is returned
# E.g. The string representation of an object WITHOUT the __str__() function:
"""
class Person:
def __init__(self, name, age) -> None:
self.name = name
self.age = age
p1 = Person("Ikenna", "42")
print(p1)
"""
# E.g. The string representation of an object WITH the __str__() function:
"""
class Person:
def __init__(self, name, age) -> None:
self.name = name
self.age = age
def __str__(self) -> str:
return f"{self.name}({self.age})"
p1 = Person("Ikenna", 42)
print(p1)
"""
# Object methods
# E.g. Insert a function that prints a greeting, and execute it on the p1 object:
"""
class Person:
def __init__(self, name, age) -> None:
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person ("Ikenna", 42)
p1.myfunc()
"""
# The self parameter
# The self parameter is a reference to the current instance of the class, and is used to access variables that belong to the class.
# It does not have to be name self, you can call it whatever you like, but it has to be the first parameter of any function in the class:
# E.g. Use the words mysillyobject and abc instead of self:
"""
class Person:
def __init__(mysillyobject, name, age) -> None:
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("Ikenna", 42)
p1.myfunc()
"""
# Modify object properties
# You can modify properties an object like this:
# E.g. Set the age of p1 to 40:
"""
class Person:
def __init__(self, name, age) -> None:
self.name = name
self.age = age
def __str__(self) -> str:
return f"{self.name}({self.age})"
p1 = Person("Ikenna", 42)
p1.age = 40
print(p1)
"""
# Delete objects
# You can delete objects by using the del keyword:
# E.g. Delete the p1 object:
"""
del p1
print(p1)
"""
# The pass statement
# class definitions cannot be empty, but if you for some reason have a class definition with no content, put in the pass statement to avoid getting an error
"""
class Person:
pass
"""
class Person:
def __init__(self, name, age) -> None:
self.name = name
self.age = age
def __str__(self) -> str:
return f"{self.name}({self.age})"
p1 = Persons("Ikenna", 42)
p1.age = 40
print(p1)