python when to send self to func call 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: classes in python with self parameter
self represents the instance of the class. By using the “self” keyword we can access the attributes and methods of the class in python. It binds the attributes with the given arguments.