...
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() |