In [1]:
class MyClass: # myClass, my_class
pass
Instance¶
In [7]:
a = MyClass() # a -> instance of the class
b = MyClass()
print(a,b)
<__main__.MyClass object at 0x7d042e125930> <__main__.MyClass object at 0x7d042e126050>
Object Initialization¶
In [36]:
class MyClass: # myClass, my_class
def __init__(self, x, y): # constructor
self.x = x
self.y = y
def get_x(self): # getter
return self.x
def set_x(self, x): # setter
if x < 0:
raise ValueError("x cannot be negative")
self.x = x
a = MyClass(x=3,y=5)
# print(a.x) # direct
a.get_x() # indirect
a.x = 12 # direct
print(a.x)
a.set_x(-3) # indirect
print(a.x)
12
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-36-51ebe11f7abd> in <cell line: 19>() 17 a.x = 12 # direct 18 print(a.x) ---> 19 a.set_x(-3) # indirect 20 print(a.x) <ipython-input-36-51ebe11f7abd> in set_x(self, x) 9 def set_x(self, x): # setter 10 if x < 0: ---> 11 raise ValueError("x cannot be negative") 12 self.x = x 13 ValueError: x cannot be negative
Additonal methods
In [81]:
class MyClass: # myClass, my_class
pi = 3.14
def __init__(self, x, y): # constructor
self.x = x
self.y = y
self._private_var = 0
self._sum_var = None
self._sum = self._private_func()
def get_x(self): # getter
return self.x
def get_y(self): # getter
return self.y
def set_x(self, x): # setter
if x < 0:
raise ValueError("x cannot be negative")
self.x = x
def set_x(self, y): # setter
self.y = y
def __str__(self):
return f"x: {self.x}, y: {self.y}"
def __repr__(self):
return f"MyClass(x={self.x}, y={self.y})"
def _private_func(self):
self._sum_var = self._private_func_var(10)
return self.x + self.y
def _private_func_var(self,z):
return self.x + self.y + z
def get_sum(self):
''' Returns the sum of x and y '''
return self._sum
def __call__(self):
pass
a = MyClass(x=3,y=5)
b = MyClass(x=6,y=7)
print(a,'; ',b)
print(a.pi, b.pi)
x: 3, y: 5 ; x: 6, y: 7 3.14 3.14
Set of integers¶
New variable that includes integers (only)
- Init: emptry variable
- Each number can show up in variable only once
- Internal representation -
list
- Methods:
insert
member
remove
- printable
In [15]:
class intSet():
def __init__(self):
self.s = []
def insert(self, e):
''' Insert e into set
e must be an integer
e must not be already in the set
'''
if type(e) != int:
print("Not an integer")
elif not self.member(e):
self.s.append(e)
else:
print("Already in set")
def member(self, e):
return e in self.s
def remove(self, e):
#if self.member(e):
if intSet.member(self,e):
self.s.remove(e)
else:
print("Not in set")
def __str__(self):
self.s.sort()
# return '{' + ', '.join([str(e) for e in self.s]) + '}'
result = ''
for e in self.s:
result += str(e) + ', '
return '{' + result[:-2] + '}'
def __add__(self, other):
result = intSet()
for e in self.s:
result.insert(e)
for e in other.s:
result.insert(e)
return result
s=intSet()
# print(s)
s.insert(1)
s.insert(1)
s.insert(2)
s.insert(3)
# print(s)
s.remove(2)
s.remove(4)
print(s)
z = intSet()
z.insert(3)
z.insert(4)
print(z)
print(s+z)
Already in set Not in set {1, 3} {3, 4} Already in set {1, 3, 4}
In [82]:
In [ ]: