المتغيرات العالمية والمحلية في بايثون

07-12-22 أحمدُ عُبَيْد 2866 0

المتغيرات العامة أو العالمية ( global ) هي متغيرات يتم الإعلان عنها خارج الدالة. المتغيرات العالمية ( global ) لها نطاق عالمي. هذا يعني أنه يمكن الوصول إليها من أي مكان في البرنامج بأكمله، بينما المتغيرات المحلية ( Local ) هي تلك التي يتم تحديدها داخل الدالة او الوظيفة ( Function ) ونطاقها يقتصر داخل الدالة فقط. بمعنى آخر ، المتغيرات المحلية ( Local ) يمكن الوصول إليها فقط داخل الدالة المحددة. بينما يمكن الوصول إلى المتغيرات العالمية ( global ) في جميع أنحاء البرنامج وداخل كل دالة. 

Python Variables

متغيرات بايثون العالمية ( Global Variables )

هي التي تم تحديدها خارج أي دالة ( Function ) والتي يمكن الوصول إليها في جميع أنحاء البرنامج ، أي داخل وخارج كل دالة ( Function ). دعونا نرى كيفية إنشاء متغير عالمي.


# This function uses global variable name
# تستخدم هذه الوظيفة المتغير العالمي name
name = "ahmed obaid"
def myfunc():
print("My Name is " + name)
myfunc()

سيكون الناتج:


My Name is ahmed obaid

في المثال السابق قمنا بتعريف متغير عالمي ( global ) اسمه name ومن ثم قمنا بطلبه داخل الدالة myfunc. ويمكن ايضاً استخدام المتغير name داخل الدالة ()myfunc وكذلك خارجها.

استخدام الكلمة ( global )

عندما تنشئ متغيرًا داخل دالة ، يكون هذا المتغير محليًا ، ولا يمكن استخدامه إلا داخل هذه الدالة.

ولكن يمكن تغيير قيمة متغير عام داخل دالة محددة عن طريق اضافة كلمة ( global ) قبل المتغير

مثال:


name = "ahmed obaid"
def myfunc():
global name
name = "hamza"
print("My Name is " + name)
myfunc()

سيكون الناتج:


My Name is hamza

في المثال السابق قمنا بتعريف متغير عالمي ( global ) اسمه name واعطينا له القيمة ahmed obaid. ومن ثم قمنا بانشاء متغير بنفس الاسم name داخل الدالة myfunc وقمنا بتغيير قيمته الي hamza. وحتي يتم ذلك بشكل صحيح وضعنا قبله كلمة global وبجوارها اسم المتغير name . وذلك حتي نستطيع تغيير قيمته داخل الدالة

متغيرات بايثون المحلية  ( Local )

المتغيرات المحلية هي المتغيرات المعلنة داخل دالة. من المعروف أن هذه المتغيرات لديها local scope او نطاق محلي. هذا يعني أنه لا يمكن الوصول إليها إلا من داخل الدالة التي تم انشائها فيها . 

مثال:


def welcome():
# متغير محلي
# local variable
message = "Welcome to Ahmed Obaid's blog"

print('Local', message)
welcome()

 في المثال السابق قمنا بإنشاء دالة اسمها welcom وفي داخلها قمنا بتعريف متغير محلي اسمه  message ووضعنا له قيمه عبارة عن رسالة ترحيبية "Welcome to Ahmed Obaid's blog" ثم قمنا باستدعاء دالة ()welcome

سيكون الناتج:


Local Welcome to Ahmed Obaid's blog

ماذا لو طلبنا من البرنامج طباعة المتغير المحلي message خارج الدالة كما في المثال التالي

مثال:


def welcome():
# متغير محلي
# local variable
message = "Welcome to Ahmed Obaid's blog"

# محاولة الوصول إلى متغير message
#خارج الدالة welcome
# try to access message variable
# outside welcome() function
print(message)

سيكون الناتج:


NameError: name 'message' is not defined

في المثال السابق قمنا بإعطاء امر طباعة للمتغير المحلي message خارج الدالة فظهرت لنا رسالة خطأ لان المتغير message تم تعريفة فقط داخل دالة welcome ولذلك لم يستطع البرنامج التعرف عليه

معلومات اكثر

قد ترغب في الرجوع إلى المصادر التالية للحصول على معلومات إضافية حول هذا الموضوع

توثيق بايثون

اذا كان لديك أي أسئلة؟ اتركها في التعليقات 



الكلمات الدلالية


بايثون المتغيرات في بايثون

شارك المقال