Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การเข้าถึงแอตทริบิวต์และเมธอดใน Python


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