ورود

View Full Version : سوال در خصوص متغیر global و local



noipaa
شنبه 27 اردیبهشت 1399, 23:05 عصر
سلام و عرض ادب دوستان.

بنده یک سوالی برام پیش اومده.به قطعه کد زیر توجه کنید:





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)

sd702004
شنبه 27 اردیبهشت 1399, 23:17 عصر
در این تا‍پیک (https://barnamenevis.org/showthread.php?560577-%D8%AC%D8%A7%D8%A8%D9%87-%D8%AC%D8%A7%DB%8C%DB%8C-%D8%AF%D9%88-%D8%B9%D9%86%D8%B5%D8%B1-%D8%AF%D8%B1-%D9%84%DB%8C%D8%B3%D8%AA) قبلا مورد مشابه سوال شما مطرح شده