سلام و عرض ادب دوستان.
بنده یک سوالی برام پیش اومده.به قطعه کد زیر توجه کنید:
def change(mylist):
mylist.append([1,2,3,4])
print("value insid" , mylist)
mylist=[10,20,30]
change(mylist)
print("outsid",mylist)
در بالا من mylist رو به عنوان آرگومان به تابع دادم و همونطور که میبینید یک لیستی رو بهش اضافه کردم و بعد چاپش کردم.سوالم اینه که مگر من mylist رو به عنوان یک متغیر به تابع ندادم؟اگر بله مگر این متغیر درون تابع مگه نباید به صورت لوکال محسوب بشه و فقط مقدار mylist داخل تابع تغییر کنه؟اگر بله پس چرا در خروجی مقدار mylist گلوبال رو هم تغییر داده؟
ممنون میشم یک توضیحی بدید.
===============
یک مسئله دیگه ای وجود داره که بنده mylist رو میگیرم و مقدار mylist رو به یک متغیر دیگه میدم و به متغیر جدید هر مقداری اضافه می کنم مقدار mylist هم اضافه میشه !!
def change(mylist):
newmylist = mylist
newmylist.append([1,2,3,4])
print("value inside" , newmylist)
mylist=[10,20,30]
change(mylist)
print("outsid",mylist)