python_catchup_2024/2_classes.py

49 lines
2 KiB
Python
Raw Permalink Normal View History

2024-11-08 19:30:32 +00:00
"""
Their is going to be a relatively big jump in difficulty here, but dont be scared!
All you need to know to understand classes are variables and functions, as covered in the previous file.
Key Concepts:
**class** is a blueprint for creating objects (specific instances of that class),
a class represents a collection of attributes and methods to represent something (e.g a Person)
**object** is an instance of a class with its own unique data.
**attributes** are values tied to a object
**methods** are the exact same as functions, but are tried to a class.
**Magic/dunder methods** are methods predefined by python that can be used for various things.
**__init__** is a type of magic method, it is known as a constructor and initializes the objects attributes when its created
"""
class Person:
"""A class Representing a Human/Person"""
# This is the constructor, whenever a new person is created it runs and can be used to assign the new person their attributes!
def __init__(self, name, age, eye_color):
# An attribute
self.name = name
2024-11-08 19:30:32 +00:00
self.age = age
self.eye_color = eye_color
# This is a method, note "self" must be passed as a paramater/arguement for it to access the attributes of... itself.
def canApplyForLicence(self):
if self.age >= 17:
return f"{self.name} can apply for their driving permit!"
else:
return f"{self.name} is too young ({self.age}) and can not apply for a driving permit."
# Creates a new person with the following values
pedro = Person("Pedro", 19, "Brown")
2024-11-08 19:30:32 +00:00
# Runs the canApplyForLicence method, and prints the return value
print(pedro.canApplyForLicence())
2024-11-08 19:30:32 +00:00
# Creates a Another new person with the following values (iain armitage if you wanted to know.)
Iain = Person("Iain", 16, "Blue")
2024-11-08 19:30:32 +00:00
# Runs the canApplyForLicence method, and prints the return value
print(Iain.canApplyForLicence())