self en python code example
Example 1: self in python
"""
Before potentially reading along I highly suggest you master how to
use parameters and arguments in python because if you haven't this can
get confusing. Otherwise read along:
The self argument is most frequently used in the __init__ function.
The __init__ function is a constructor function meaning that it
constructs objects in a class.
This is part of the object oriented programming (OOP) branch.
In this example ill be creating a person with values of name, gender and
age.
What 'self' essentailly is, is the class, so when referring to 'self'
you are refering to values in a class.
So 'self.age = age' is just adding a variable in the
class which has the same value as 'age'.
"""
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = male
Person1 = Person("Isabella", 27, "female")
Person2 = Person("Mikkel", 29, "male")
People = [ Person1, Person2 ]
"""
You can now use the list of people to well.. list people and their
details.
You could make a table of people by making the array 2 dimensional
which can eventually lead to a database,
but this isn't a post to get into that.
"""
"""
Thats essentially how to use constructors, you're creating an object
relative to topic per se. More examples / usages:
"""
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def Function(self):
print(self.name)
print(self.age)
P = Person("Jeff", 27, "male")
P.Function()
print(P.name)
print(P.age)
"""
So overall this comes to show that self.something is the exact same as
a varible but rather than a global variable or a variable within a
function scope, it's instead a class variable.
So when doing 'self.something' logically you can think of it as:
'class.something'
And thats it. To see a better way of coding the code above you can
carry on reading but although it's not necessary to know.
A better way of calling a class is to use the __call__ method.
This creates an inbuilt constant function within the class that can be
called, rather than creating a function as above.
"""
class Person:
def __init__(self, name, age, gender):
self.name=name
self.age=age
self.gender=gender
def __call__(self):
print(self.name)
print(self.age)
P = Person("Jeff", 27, "male")
P()
Example 2: python self nedir
'''
Created on 14 Jan 2017
@author: Ibrahim Ozturk
@author: www.ozturkibrahim.com
'''
class Musteri(object):
"""Bir banka musterisinin hesabindaki tutari kontrol etme. Musteri sinifi
asagidaki ozelliklere sahiptir :
Ozellikler:
isim : Musteri ismini tutan string turunde parametre
bakiye : Musterinin hesabinda halihazirdaki bakiyeyi gosteren float tipinde parametre.
"""
def __init__(self, isim, bakiye=0.0):
"""Girilen isim ile ve baslangic bakiyesi olarak sifiri koyan musteriyi olusturur."""
self.isim = isim
self.bakiye = bakiye
def paraCek(self, tutar):
"""Hesaptan ilgili tutarin cekilmesinin ardindan yeni bakiyeyi doner."""
if tutar > self.bakiye:
raise RuntimeError('Bakiye yetersiz.')
self.bakiye -= tutar
self.bilgiGoster()
return self.bakiye
def paraYatir(self, tutar):
"""Hesaba ilgili tutarin yatirilmasinin ardindan yeni bakiyeyi doner.."""
self.bakiye += tutar
self.bilgiGoster()
return self.bakiye
def bilgiGoster(self):
"""Ilgili musterinin ismini ve hesap bakiyesini ekrana basar.."""
print(self.isim + " isimli musteriye ait bakiye >> " + str(self.bakiye) + " TL'dir.")
musteri1 = Musteri('Ibrahim Ozturk', 500.0)
musteri1.paraCek(100.0)