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

การสร้างอินสแตนซ์อ็อบเจ็กต์ (Creating Instance Objects) ใน Python

เพื่อสร้างอินสแตนซ์ของคลาส คุณเรียกคลาสโดยใช้ชื่อคลาสและส่งอาร์กิวเมนต์ที่เมธอด __init__ ยอมรับ

"This would create first object of Employee class"
emp1 = Employee("Zara", 2000)
"This would create second object of Employee class"
emp2 = Employee("Manni", 5000)

คุณเข้าถึงแอตทริบิวต์ของอ็อบเจ็กต์โดยใช้ dot operator กับอ็อบเจ็กต์ ตัวแปรคลาสจะเข้าถึงได้โดยใช้ชื่อคลาสดังนี้:

emp1.displayEmployee()
emp2.displayEmployee()
print "Total Employee %d" % Employee.empCount

ตัวอย่าง

ตอนนี้ รวมแนวคิดทั้งหมดเข้าด้วยกัน:

#!/usr/bin/python
class Employee:
    'Common base class for all employees'
    empCount = 0
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        Employee.empCount += 1
    def displayCount(self):
        print "Total Employee %d" % Employee.empCount
    def displayEmployee(self):
        print "Name : ", self.name, ", Salary: ", self.salary

"This would create first object of Employee class"
emp1 = Employee("Zara", 2000)
"This would create second object of Employee class"
emp2 = Employee("Manni", 5000)
emp1.displayEmployee()
emp2.displayEmployee()
print "Total Employee %d" % Employee.empCount

ผลลัพธ์ (Output)

เมื่อรันโค้ดข้างต้น จะได้ผลลัพธ์ดังนี้:

Name : Zara ,Salary: 2000
Name : Manni ,Salary: 5000
Total Employee 2

คุณสามารถเพิ่ม ลบ หรือแก้ไขแอตทริบิวต์ของคลาสและอ็อบเจ็กต์ได้ตลอดเวลา:

emp1.age = 7 # เพิ่มแอตทริบิวต์ 'age'
emp1.age = 8 # แก้ไขแอตทริบิวต์ 'age'
del emp1.age # ลบแอตทริบิวต์ 'age'

แทนที่จะใช้คำสั่งทั่วไปเพื่อเข้าถึงแอตทริบิวต์ คุณสามารถใช้ฟังก์ชันต่อไปนี้:

  • getattr(obj, name[, default]) - เพื่อเข้าถึงแอตทริบิวต์ของอ็อบเจ็กต์
  • hasattr(obj, name) - เพื่อตรวจสอบว่าแอตทริบิวต์มีอยู่หรือไม่
  • setattr(obj, name, value) - เพื่อตั้งค่าแอตทริบิวต์ หากไม่มีอยู่ จะถูกสร้างขึ้น
  • delattr(obj, name) - เพื่อลบแอตทริบิวต์
hasattr(emp1, 'age') # คืนค่า true หากแอตทริบิวต์ 'age' มีอยู่
getattr(emp1, 'age') # คืนค่าของแอตทริบิวต์ 'age'
setattr(emp1, 'age', 8) # ตั้งค่าแอตทริบิวต์ 'age' เป็น 8
delattr(empl, 'age') # ลบแอตทริบิวต์ 'age'