LightMySky
به انگلیسی

Classes and Objects: Bundling Data with Behaviour

A class defines a kind of object, with attributes for its data and methods for its behaviour. Each instance can hold its own state. An initializer sets starting values; access rules require deliberate design.

No account needed. Progress saves in this browser.

What a learner can do afterwards

  • Define a class with a constructor and two methods, then create two objects from it
  • Say what belongs to the object and what belongs to the class
  • Rewrite a loose group of variables and functions as one class, and say what improved

1 · Read

class Cat: definedCat(): class callresult: Cat instance
A class defines attributes and methods. Calling it creates an instance when its initializer accepts the supplied arguments.
Try it together

__init__ initializes an already-created instance. self refers to that instance. ```python class Account: def __init__(self, balance): self.balance = balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): self.balance -= amount mia = Account(100) sam = Account(40) ```

In obj.area(), Python supplies obj as self. A method returning self.length * self.width multiplies that object's dimensions. With length 3 and width 7, it returns 21.

An instance attribute belongs to one object; a class attribute belongs to the class. Instances read CoffeeOrder.loc unless they shadow it with an instance attribute of the same name. Assigning pet_1.name does not assign pet_2.name. Referenced mutable values may still be shared.

Try it together

An instance method can update its receiver: ```python def update_max(self, speed): self.max_mph = speed ``` For car.update_max(90.0), self is car. Other cars receive no assignment.

Start CoffeeOrder.cls_id at 0. Each initializer first adds 1 to CoffeeOrder.cls_id, then assigns self.order_id = CoffeeOrder.cls_id. The first two creations receive IDs 1 and 2.

Account groups each balance with deposit and withdraw operations. It does not prevent outside assignment to public attributes. Rejecting invalid withdrawals requires deliberate checks; declaring a class does not supply them.

A class defines shared behaviour. Instances hold attributes, which may reference shared values. __init__ sets initial state; access rules need deliberate design.

Class, attribute and method teaching adapted from the Introduction to Python Programming textbook corpus records, with independently written corrections and assessment repairs.

The three readings were independently written for this dataset. Video references are to Khan Academy's Classes and objects, Methods and encapsulation and Object composition.

2 · Watch

به انگلیسی

Take it off screen

Print a worksheetA4 with an answer key page for grown-ups. No screen, no internet.

Where it sits

Then practise

8 questions wait behind this lesson, each with its answer explained. Every answer feeds the sky: stars light as they are learned, and dim when it is time to come back.

Spotted a problem on this page? Tell us
Classes and Objects: Bundling Data with Behaviour · Computing, ages 16 to 18 · LightMySky