شئ گرایی در پایتون (قسمت دوم)
در قسمت قبلی درباره مفهوم شئ گرایی و همچنین نحوه تعریف کلاس و ساخت شئ توضیح داده شد. در این قسمت به ادامه مبحث شئ گرایی در پایتون میپردازیم.
دسترسی به صفت های شئ
شما میتوانید با استفاده از نام شئ و بلافاصله نقطه، به متدها و متغیرهای کلاس دسترسی داشته باشید. با توجه به نمونه کدهای قسمت قبل، ما دو شئ emp1 و emp2 داشتیم. حال نحوه دسترسی به محتویات این دو شئ را بررسی میکنیم.
emp1.displayEmployee() emp2.displayEmployee() print "Total Employee %d" % Employee.empCount
اگر بخواهیم تمام مفاهیم گفته شده تا به حال را در یک سورس بررسی کنیم میتوان با سورس زیر تمام مفاهیم گفته شده را یاد آوری کرد.
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
خروجی کد بالا به صورت زیر است:
Name : Zara ,Salary: 2000 Name : Manni ,Salary: 5000 Total Employee 2
شما میتوانید هر لحظه که خواستید صفت های هر کلاس و شئ را اضافه ، پاک یا تغییر دهید. به کد زیر توجه کنید:
emp1.age = 7 # Add an 'age' attribute. emp1.age = 8 # Modify 'age' attribute. del emp1.age # Delete 'age' attribute.
به جای استفاده از قاعده گفته شده در باره دسترسی به محتویات کلاس، میتوان از توابع جایگزین زیر نیز استفاده کرد.
- gettr : دسترسی به صفت کلاس
- hasattr : چک میکند آیا چنین صفتی در کلاس وجود دارد یا خیر
- setattr : یک صفت را مقدار دهی میکند. اگر آن صفت وجود نداشت , آن را ایجاد میکند
- delattr : یک صفت را حذف میکند
نحوه استفاده از توابع بالا در قالب یک مثال میتوانید در زیر ببینید:
hasattr(emp1, 'age') # Returns true if 'age' attribute exists getattr(emp1, 'age') # Returns value of 'age' attribute setattr(emp1, 'age', 8) # Set attribute 'age' at 8 delattr(empl, 'age') # Delete attribute 'age'
تا این قسمت شما با نحوه نوشتن و ساخت یک کلاس و ایجاد شئ برای استفاده از کلاس آشنا شدید. در مورد نحوه مقدار دهی متغیر های کلاس و دسترسی به متدها نیز بحث شد. در قسمت آینده درباره مباحث پیشرته تری همچون وراثت ، چند ریختی کردن متدها و صفت های داخلی کلاس بحث خواهیم کرد. پس با zerotohero همراه باشید…
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.