Objects in Python represent an encapsulation of variables (properties) and functions (methods) into a single entity. Objects are created from classes, which can be thought of as blueprints for the object.
- Object: An instance of a class containing properties and methods.
- Class: A blueprint for creating objects, providing initial values for properties, and implementations of methods.
Example
class Car:
def __init__(self, brand, model, year):
self.brand = brand
self.model = model
self.year = year
def display_info(self):
print(f"This is a {self.year} {self.brand} {self.model}")
my_car = Car("Ford", "Mustang", 1964)
my_car.display_info()Properties are variables that belong to an object.
Example
print(my_car.brand) # Accessing the 'brand' property of the 'my_car' objectMethods are functions that belong to an object.
Example
my_car.display_info() # Calling the 'display_info' method of the 'my_car' objectA class is defined using the class keyword, followed by the class name and a colon.
Syntax
class ClassName:
# properties and methodsThe __init__ method is a special method called a constructor, used for initializing properties of an object.
Syntax
class ClassName:
def __init__(self, parameter1, parameter2):
self.property1 = parameter1
self.property2 = parameter2Inheritance allows a new class to extend an existing class, inheriting its properties and methods.
Example
class ElectricCar(Car):
def __init__(self, brand, model, year, battery_size):
super().__init__(brand, model, year)
self.battery_size = battery_sizeEncapsulation involves restricting access to properties and methods, often using private and protected access modifiers.
Polymorphism allows methods to do different things based on the object it is acting upon.
- Class variables are shared by all instances of a class.
- Instance variables are unique to each instance.
Example
class Dog:
species = "Canis familiaris" # Class variable
def __init__(self, name, age):
self.name = name # Instance variable
self.age = age # Instance variable| Concept | Description | Example |
|---|---|---|
| Class | Blueprint for creating objects | class Dog: pass |
| Object | An instance of a class | my_dog = Dog() |
| Properties | Variables belonging to an object | my_dog.name = 'Rex' |
| Methods | Functions belonging to an object | def bark(self): print("Woof!") |
| Inheritance | Extending the functionality of a class | class Bulldog(Dog): pass |
| Encapsulation | Restricting access to properties and methods | Using _ or __ to denote private/protected attributes |
| Polymorphism | Methods can act differently based on the object type | Overriding methods in child classes |
| Class Variable | Variable shared by all instances of a class | Dog.species = 'Canis familiaris' |
| Instance Variable | Unique to each instance | self.name = name in the __init__ method |
- Use proper naming conventions (CamelCase for classes, lowercase_with_underscores for functions and variables).
- Keep class definitions simple and focused on a single responsibility.
- Document classes and methods clearly for maintainability.