เป็นภาษาการเขียนโปรแกรมเชิงวัตถุ หลามเน้นที่วัตถุ คลาสคือพิมพ์เขียวที่ใช้สร้างออบเจกต์ แต่ละคลาสใน python สามารถมีแอตทริบิวต์ได้หลายแบบรวมถึงฟังก์ชันที่เป็นแอตทริบิวต์ด้วย
การเข้าถึงคุณสมบัติของคลาส
ในการตรวจสอบแอตทริบิวต์ของคลาสและเพื่อจัดการแอตทริบิวต์เหล่านั้น เราใช้เมธอดในตัวของ python มากมายดังที่แสดงด้านล่าง
-
getattr() − วิธี python ที่ใช้เพื่อเข้าถึงแอตทริบิวต์ของคลาส
-
hasattr() − วิธี python ที่ใช้ตรวจสอบการมีอยู่ของแอตทริบิวต์ในคลาส
-
setattr() − วิธี python ที่ใช้ตั้งค่าแอตทริบิวต์เพิ่มเติมในคลาส
โปรแกรมด้านล่างแสดงการใช้เมธอดด้านบนเพื่อเข้าถึงแอตทริบิวต์ของคลาสใน python
ตัวอย่าง
class StateInfo: StateName='Telangana' population='3.5 crore' def func1(self): print("Hello from my function") print getattr(StateInfo,'StateName') # returns true if object has attribute print hasattr(StateInfo,'population') setattr(StateInfo,'ForestCover',39) print getattr(StateInfo,'ForestCover') print hasattr(StateInfo,'func1')
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Telangana True 39 True
การเข้าถึงเมธอดของคลาส
ในการเข้าถึงเมธอดของคลาส เราจำเป็นต้องสร้างคลาสให้เป็นอ็อบเจ็กต์ จากนั้นเราก็สามารถเข้าถึง method ดังกล่าวเป็น method ของ class ดังแสดงในโปรแกรมด้านล่าง ที่นี่ผ่านพารามิเตอร์ตนเอง เมธอดอินสแตนซ์สามารถเข้าถึงแอตทริบิวต์และเมธอดอื่นๆ บนออบเจ็กต์เดียวกันได้
ตัวอย่าง
class StateInfo: StateName='Telangana' population='3.5 crore' def func1(self): print("Hello from my function") print getattr(StateInfo,'StateName') # returns true if object has attribute print hasattr(StateInfo,'population') setattr(StateInfo,'ForestCover',39) print getattr(StateInfo,'ForestCover') print hasattr(StateInfo,'func1') obj = StateInfo() obj.func1()
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Telangana True 39 True Hello from my function
การเข้าถึงเมธอดของคลาสหนึ่งจากอีกคลาสหนึ่ง
ในการเข้าถึงเมธอดของคลาสหนึ่งจากคลาสอื่น เราจำเป็นต้องส่งอินสแตนซ์ของคลาสที่เรียกไปยังคลาสที่เรียก ตัวอย่างด้านล่างแสดงวิธีการดำเนินการ
ตัวอย่าง
class ClassOne: def m_class1(self): print "Method in class 1" # Definign the calling Class class ClassTwo(object): def __init__(self, c1): self.c1 = c1 # The calling method def m_class2(self): Object_inst = self.c1() Object_inst.m_class1() # Passing classone object as an argument to classTwo obj = ClassTwo(ClassOne) obj.m_class2()
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Method in class 1