การนำแนวคิดเชิงวัตถุไปใช้
ในบทนี้เราจะเน้นรูปแบบโดยใช้แนวคิดเชิงวัตถุและการนำไปใช้ใน Python เมื่อเราออกแบบโปรแกรมของเรารอบ ๆ บล็อกของคำสั่งซึ่งจัดการข้อมูลรอบ ๆ ฟังก์ชันจะเรียกว่าการเขียนโปรแกรมเชิงโพรซีเดอร์ ในการเขียนโปรแกรมเชิงวัตถุมีสองอินสแตนซ์หลักที่เรียกว่าคลาสและอ็อบเจ็กต์
วิธีการใช้คลาสและตัวแปรออบเจ็กต์?
การใช้คลาสและตัวแปรออบเจ็กต์มีดังนี้ -
class Robot:
population = 0
def __init__(self, name):
self.name = name
print("(Initializing {})".format(self.name))
Robot.population += 1
def die(self):
print("{} is being destroyed!".format(self.name))
Robot.population -= 1
if Robot.population == 0:
print("{} was the last one.".format(self.name))
else:
print("There are still {:d} robots working.".format(
Robot.population))
def say_hi(self):
print("Greetings, my masters call me {}.".format(self.name))
@classmethod
def how_many(cls):
print("We have {:d} robots.".format(cls.population))
droid1 = Robot("R2-D2")
droid1.say_hi()
Robot.how_many()
droid2 = Robot("C-3PO")
droid2.say_hi()
Robot.how_many()
print("\nRobots can do some work here.\n")
print("Robots have finished their work. So let's destroy them.")
droid1.die()
droid2.die()
Robot.how_many()
เอาต์พุต
โปรแกรมข้างต้นสร้างผลลัพธ์ต่อไปนี้ -
คำอธิบาย
ภาพประกอบนี้ช่วยแสดงให้เห็นถึงลักษณะของคลาสและตัวแปรออบเจ็กต์
"ประชากร" เป็นของคลาส "Robot" ดังนั้นจึงเรียกว่าตัวแปรคลาสหรือวัตถุ
ในที่นี้เราอ้างถึงตัวแปรระดับประชากรว่า Robot.population ไม่ใช่ self.population