เป็นภาษาการเขียนโปรแกรมเชิงวัตถุ หลามเน้นที่วัตถุ คลาสคือพิมพ์เขียวที่ใช้สร้างออบเจกต์ แต่ละคลาสใน 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