Python ichki classlar
Python ichki sinflari
Ichki class boshqa class ichida belgilangan sinfdir. Ichki class tashqi classning xususiyatlari va usullariga kirishi mumkin.
Ichki classlar faqat bitta joyda ishlatiladigan classlarni guruhlash uchun foydali bo‘lib, kodingizni yanada tartibli qiladi.
Misol
Ichki class yarating:
class Outer:
def __init__(self):
self.name = "Outer Class"
class Inner:
def __init__(self):
self.name = "Inner Class"
def display(self):
print("This is the inner class")
outer = Outer()
print(outer.name)
O‘zingiz sinab ko‘ring »
Tashqaridan ichki classga kirish
Ichki classga kirish uchun tashqi class obyektini yarating va keyin ichki class obyektini yarating:
Misol
Ichki classga kiring va obyekt yarating:
class Outer:
def __init__(self):
self.name = "Outer"
class Inner:
def __init__(self):
self.name = "Inner"
def display(self):
print("Hello from inner class")
outer = Outer()
inner = outer.Inner()
inner.display()
O‘zingiz sinab ko‘ring »
Ichki sinfdan tashqi classga kirish
Python-dagi ichki classlar avtomatik ravishda tashqi class misoliga kirish imkoniga ega emas.
Agar siz ichki class tashqi classga kirishini istasangiz, tashqi class misolini parametr sifatida topshirishingiz kerak:
Misol
Tashqi class misolini ichki classga o‘tkazing:
class Outer:
def __init__(self):
self.name = "Emil"
class Inner:
def __init__(self, outer):
self.outer = outer
def display(self):
print(f"Outer class name: {self.outer.name}")
outer = Outer()
inner = outer.Inner(outer)
inner.display()
O‘zingiz sinab ko‘ring »
Amaliy misol
Ichki classlar faqat tashqi class kontekstida ishlatiladigan yordamchi classlarni yaratish uchun foydalidir:
Misol
Avtomobil dvigatelini ifodalash uchun ichki sinfdan foydalaning:
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
self.engine = self.Engine()
class Engine:
def __init__(self):
self.status = "Off"
def start(self):
self.status = "Running"
print("Engine started")
def stop(self):
self.status = "Off"
print("Engine stopped")
def drive(self):
if self.engine.status == "Running":
print(f"Driving the {self.brand} {self.model}")
else:
print("Start the engine first!")
car = Car("Toyota", "Corolla")
car.drive()
car.engine.start()
car.drive()
O‘zingiz sinab ko‘ring »
Bir nechta ichki classlar
Bir class bir nechta ichki sinflarga ega bo‘lishi mumkin:
Misol
Bir nechta ichki classlarni yarating:
class Computer:
def __init__(self):
self.cpu = self.CPU()
self.ram = self.RAM()
class CPU:
def process(self):
print("Processing data...")
class RAM:
def store(self):
print("Storing data...")
computer = Computer()
computer.cpu.process()
computer.ram.store()
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
