Start på pass 2

This commit is contained in:
2018-03-15 14:52:03 +01:00
parent ad6bc8642e
commit c39eae4ef4
6 changed files with 96 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

23
Pass2/Inheritance.py Executable file
View File

@@ -0,0 +1,23 @@
class Person:
def __init__(self, first, last):
self.firstname = first
self.lastname = last
def Name(self):
return self.firstname + " " + self.lastname
class Employee(Person):
def __init__(self, first, last, staffnum):
Person.__init__(self,first, last)
self.staffnumber = staffnum
def GetEmployee(self):
return self.Name() + ", " + self.staffnumber
x = Person("Marge", "Simpson")
y = Employee("Homer", "Simpson", "1337")
print(x.Name())
print(y.GetEmployee())

12
Pass2/OOP basics.py Executable file
View File

@@ -0,0 +1,12 @@
class MyClass:
#My first class
i = 12345
str = "Something"
def myFunc(self):
return 'hello world'
x = MyClass()
print(x.i)
print(x.str)
print(x.myFunc())

28
Pass2/OOP with constructor.py Executable file
View File

@@ -0,0 +1,28 @@
class MyMath:
myInt = 12345 #class variable the same for all instances
"""“Private” instance variables that cannot be accessed except from
inside an object dont exist in Python. However, there is a
convention that is followed by most Python code: a name prefixed
with an underscore (e.g. _spam) should be treated as a non-public
part of the API (whether it is a function, a method or a data member).
It should be considered an implementation detail and subject to change without notice. Since
there is a valid use-case for class-private members (namely to avoid name clashes of names
with names defined by subclasses), there is limited support for such a mechanism,
called name mangling. Any identifier of the form __spam (at least two leading
underscores, at most one trailing underscore) is textually replaced with
_classname__spam, where classname is the current class name with leading
underscore(s) stripped. This mangling is done without regard to the syntactic
position of the identifier, as long as it occurs within the definition of a class."""
__privateString = "Behandla som privat och blir manglad :)"
def __init__(self, x, y):
self.x = x #instance variables
self.y = y
print(self.__privateString)
test1 = MyMath(3.14,2.718)
test2 = MyMath(42,1337)
print(test1.x,test1.y,test1.myInt)
print(test2.x,test2.y,test2.myInt)
#print(test2.__privateString)

22
Pass2/scope.py Executable file
View File

@@ -0,0 +1,22 @@
def scope_test():
def do_local():
spam = "local spam"
def do_nonlocal():
nonlocal spam
spam = "nonlocal spam"
def do_global():
global spam
spam = "global spam"
spam = "test spam"
do_local()
print("After local assignment:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)
do_global()
print("After global assignment:", spam)
scope_test()
print("In global scope:", spam)

11
Pass2/struct.py Executable file
View File

@@ -0,0 +1,11 @@
class Car:
pass
myCar = Car() # Create an empty employee record
# Fill the fields of the record
myCar.model = 'V 70'
myCar.brand = 'Volvo'
myCar.year = 2005
print(myCar.model)