آیا میتوان در زبان پایتون لیست ها را به عنوان پارامتر استفاده کرد؟
آیا میتوان در زبان پایتون لیست ها را به عنوان پارامتر استفاده کرد؟
آیا میتوان در زبان پایتون لیست ها را به عنوان پارامتر استفاده کرد؟
فرستادن یک لیست بهعنوان آرگومان در واقع یک آدرس از لیست را به تابع میفرستد، نه یـک کپی از آن. مثلاً تابع head یک لیست را بهعنوان پارامتر میگیرد و اولین عضو آن را برمیگرداند:
def head(list):
return list[0]
در اینجا طرز استفاده از این تابع نشان داده شده است:
>> numbers = [1, 2, 3]
>>> head(numbers)
1
پارامتر list و متغیر numbers هر دو بدلهایی براي یـک شـیء یکسـان هسـتند. نمـودار حالت به صورت زیر است: از آنجا که شیء لیست براي هر دو قاب مشترك است، آن را در بین دو قاب رسم کردهایم. اگر یک تابع تغییري در پارامتر لیست بدهد، فراخواننده تغییرات را مشاهده میکند. براي مثـال deleteHead اولین عضو یک لیست را حذف میکند:
def deleteHead(list):
del list[0]
در اینجا طرز استفاده از این تابع را میبینید:
>> numbers = [1, 2, 3]
>>> deleteHead(numbers)
>>> print numbers
[2, 3]
اگر یک تابع لیستی را بازگرداند، آدرس لیست را باز مـیگردانـد. بـراي نمونـه، tail لیسـتی شامل همۀ اعضاء غیر از عضو اول را باز میگرداند:
def tail(list):
return list[1:]
در اینجا چگونگی کار tail را میبینید:
>> numbers = [1, 2, 3]
>>> rest = tail(numbers)
>>> print rest
[2, 3]
چون مقدار بازگشتی با یک عملگر برش ساخته شده است، بنابراین یک لیست جدید است و هر تغییري که از این پس در rest داده شود هیچ تأثیري در numbers نخواهد گذاشت.
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید