آیا در زبان پایتون اشیاء تغییر پذیرند ؟
آیا در زبان پایتون اشیاء تغییر پذیرند ؟
ما میتوانیم حالت یک شیء را به وسیلۀ انتساب به یکی از مشخصههاي آن تغییر دهـیم. بـراي نمونه، جهت تغییر اندازة یک مستطیل بدون تغییر مکان آن میتـوانیم مقـادیر width و height را عوض کنیم:
box.width = box.width + 50
box.height = box.height + 100
میتوانیم این کد را در یک متد بستهبندي کنیم و آن را براي تغییر اندازة مستطیل بـه وسـیلۀ هر مقدار، تعمیم دهیم:
def growRect(box, dwidth, dheight):
box.width = box.width + dwidth
box.height = box.height + dheight
متغیرهاي dwidth و dheight نشان میدهند که مستطیل در هر جهت چقدر بایـد تغییـر اندازه دهد. نتیجۀ احضار این متد تغییر Rectangle است که بـه عنـوان آرگومـانی بـه آن فرسـتاده شده است. براي مثال میتوانیم یک Rectangle جدید بـه نـام bob بسـازیم و آن را بـه growRect بفرستیم:
>> bob = Rectangle()
>>> bob.width = 100.0
>>> bob.height = 200.0
>>> bob.corner = Point()
>>> bob.corner.x = 0.0
>>> bob.corner.y = 0.0
>>> growRect(bob, 50, 100)
تا وقتیکه growRect در حال اجرا است، پارامتر box بدلی براي bob است. هر تغییري که بر روي box صورت گیرد، بر bob هم تأثیر میگذارد.
تمرین 12-3 :یک تابع به نام moveRect بنویسید که یـک Rectangle و دو پـارامتر بـه نامهاي dx و dy بگیرد و مکـان مسـتطیل را بـا اضـافه کـردن dx بـه مختصـات x و dy بـه مختصات y بهدست آورد.
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید