Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def get_make_and_model(self):
        return f'{self.make} {self.model}'

car = Car("Toyota", "Camry", 2020)
print(car.get_make_and_model())
# Output: Toyota Camry


Below is more advanced case:

Code Block
class Car:
    def __init__(self, make, model, year, speed=0):
        self.make = make
        self.model = model
        self.year = year
        self._speed = speed

    def __repr__(self):
        return f"{self.year} {self.make} {self.model}"

    def __str__(self):
        return f"{self.year} {self.make} {self.model} (speed: {self._speed} mph)"

    def accelerate(self, delta):
        self._speed += delta

    def brake(self, delta):
        self._speed = max(0, self._speed - delta)

    def speed(self):
        return self._speed

my_car = Car("Toyota", "Camry", 2020)
print(my_car)
my_car.accelerate(20)
print(my_car.speed())
my_car.brake(10)
print(my_car.speed())


The result will be like below:

Code Block
2020 Toyota Camry (speed: 0 mph)
20
10


Below is another example:

Code Block
class sample(object):
  
    # Static variable for object number
    objectNo = 0
  
    def __init__(self, name1):
  
        # variable to hold name
        self.name = name1
  
        # Increment static variable for each object
        sample.objectNo = sample.objectNo + 1
  
        # each object's unique number that can be
        # considered as ID
        self.objNumber = sample.objectNo
  
    def myFunc(self):
        print("My name is ", self.name, 
              "from object ", self.objNumber)
  
    def alterIt(self, newName):
        self.name = newName
  
    def myFunc2():
        print("I am not a bound method !!!")
  
  
# creating first instance of class sample        
samp1 = sample("A")
samp1.myFunc()
  
# unhide the line below to see the error
# samp1.myFunc2() #----------> error line
  
  
# creating second instance of class sample    
samp2 = sample("B")
samp2.myFunc()
samp2.alterIt("C")
samp2.myFunc()
samp1.myFunc()