เพื่อสร้างอินสแตนซ์ของคลาส คุณเรียกคลาสโดยใช้ชื่อคลาสและส่งอาร์กิวเมนต์ที่เมธอด __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'