להבין את היקף המשתנים הגלובליים בפייתון

Understand Global Variables Scope Python



ברוב שפות התכנות ניתן להגדיר שני סוגים של משתנים. אלה משתנים גלובליים ומשתנים מקומיים. המשתנים המוגדרים מחוץ לפונקציה נקראים משתנה גלובלי. משתנה זה נגיש וניתן לשינוי מכל מקום בתסריט. המשתנה המוצהר בתוך הפונקציה נקרא המשתנה המקומי. אבל אם אותו שם משתנה קיים כמשתנים גלובליים ומקומיים אז המשתנה בתוך הפונקציה יקבל את העדיפות והערך של המשתנה הגלובלי יתעלם. היקף המשתנה הגלובלי בתסריט הפיתון מוצג במדריך זה באמצעות דוגמאות שונות.

דוגמה 1: שימוש פשוט במשתנה גלובלי

הדוגמה הבאה מציגה שימוש פשוט במשתנה גלובלי בתוך הפונקציה ומחוצה לה. כאן, משתנה גלובלי בשם טֶקסט משמש להקצאת נתוני מחרוזת. פונקציה מותאמת אישית בשם printMessage () מוגדר להדפסת ערך המשתנה הגלובלי. הערך של ה טֶקסט משתנה מודפס בתוך הפונקציה ומחוץ לפונקציה לאחר שינוי הערך.







#!/usr/bin/env python3

# הגדר משתנה גלובלי
טֶקסט= 'ברוכים הבאים ל- LinuxHint'

# הגדר פונקציה
defprintMessage():

# הדפס את המשתנה הגלובלי מהפונקציה
הדפס('פונקציה פנימית של משתנה גלובלי: n',טֶקסט)

# התקשר לפונקציה
printMessage()

# שנה את ערך המשתנה הגלובלי
טֶקסט= 'למד תכנות פייתון'

# הדפס את הערך הנוכחי של המשתנה הגלובלי
הדפס('פונקציה חיצונית של משתנה גלובלי: n',טֶקסט)

תְפוּקָה:



הפלט הבא יופיע לאחר הפעלת התסריט. הוא הדפיס את הערך, ' ברוכים הבאים ל- LinuxHint ' המוקצה למשתנה לפני קריאת הפונקציה. לאחר מכן, הוא הדפיס את הערך, 'למד תכנות פייתון' לאחר שינוי ערך המשתנה.







דוגמה 2: שימוש במשתנה גלובלי ומקומי בעל אותו שם

אם אתה רוצה להכריז על שם משתנה בתוך פונקציה שכבר הוכרזה כמשתנה גלובלי בפייתון ותרצה להשתמש במשתנה אז היא תתייחס למשתנה כמשתנה מקומי ותיצור שגיאה. התסריט הבא יציג את השגיאה. פה, הטקסט משתנה מוגדר כמשתנה גלובלי ומקומי.

#!/usr/bin/env python3

# הגדר משתנה גלובלי
טֶקסט= 'אני אוהב פייתון'

# הגדר פונקציה
defprintMessage():
הדפס(טֶקסט)

טֶקסט= 'אני אוהב PHP'

# התקשר לפונקציה
printMessage()

תְפוּקָה:



הפלט הבא יופיע לאחר הפעלת התסריט.

כדי להימנע מהמצב לעיל ואם אתה רוצה להכריז על משתנה מקומי בעל אותו שם כמו משתנה גלובלי, עליך להקצות את המשתנה המקומי בתוך הפונקציה תחילה. התסריט הבא מראה שהשינויים במשתנה המקומי אינם מבצעים כל שינוי במשתנה הגלובלי. טֶקסט המשתנה מודפס כאן בתוך ומחוץ לפונקציה.

#!/usr/bin/env python3

# הגדר משתנה גלובלי
טֶקסט= 'אני אוהב פייתון'

# הגדר פונקציה
defprintMessage():
# ערך מקומי מדויק
טֶקסט= 'אני אוהב PHP'
# הדפס את המשתנה המקומי, טקסט
הדפס(הפונקציה הפנימית של 'הערך של' טקסט ': n',טֶקסט)

# התקשר לפונקציה
printMessage()

# הדפס את המשתנה הגלובלי, טקסט
הדפס('הערך של' טקסט 'הפונקציה החיצונית: n',טֶקסט)

תְפוּקָה:

הפלט הבא יופיע לאחר הפעלת התסריט.

דוגמה 3: שימוש במשתנה גלובלי בתוך הפונקציה

הדוגמה הקודמת מראה כי המשתנה הגלובלי אינו נגיש בתוך פונקציה. אתה יכול להשתמש העולמית מילת מפתח לגישה למשתנה גלובלי מכל פונקציה. בתסריט הבא, אחוז_קל () פונקציה מוגדרת לחישוב האחוז של כל מספר בו משתמשים במשתנים גלובליים ומקומיים כאחד. פה, על אחד הוא משתנה גלובלי, ו perVal הוא משתנה מקומי. גלוֹבָּלִי מילת המפתח משמשת כאן לזיהוי המשתנה הגלובלי בתוך הפונקציה וערכו של המשתנה הגלובלי משתנה בתוך הפונקציה.

#!/usr/bin/env python3

# קח ערך שלם
על אחד= int(קֶלֶט('הזן מספר:'))

# הגדר את הפונקציה
defאחוז_קל():
# זיהוי המשתנה הגלובלי באמצעות מילת מפתח גלובלית
גלוֹבָּלִיעל אחד

# קח ערך שלם כאחוז
perVal= int(קֶלֶט('הזן את ערך האחוזים:'))

# חשב את ערך האחוזים
תוֹצָאָה= לָצוּף((אם *perVal)/100)

# הדפס את התוצאה המעוצבת
הדפס(' %d אחוז של %d = %f'%(perVal,על אחד,תוֹצָאָה))

# שנה את הערך של המשתנה הגלובלי
על אחד= 500

# הדפס את הערך של המשתנה העולמי לפני קריאת הפונקציה
הדפס(' nהערך של num = %d '%על אחד)

# התקשר לפונקציה
אחוז_קל()

# הדפס את הערך של המשתנה הגלובלי לאחר קריאת הפונקציה
הדפס(' nהערך של num = %d '%על אחד)

תְפוּקָה:

הפלט הבא יופיע לאחר הפעלת התסריט. כאן, 10% מתוך 350 מחושבים ומודפסים.

דוגמה 4: שימוש במשתנים גלובליים מסקריפט אחר

הדוגמה הבאה מראה כיצד ניתן להשתמש במשתנה הגלובלי המוצהר בתסריט אחד בתסריט אחר. נניח, שם הקובץ הוא global6.py שישתמש במשתנים הגלובליים המוגדרים בקובץ בשם global5.py . שלושה משתנים גלובליים מוכרזים ב- global5.py . אתה צריך לייבא גלובלי 5 להשתמש במשתנים בתסריט אחר. התסריט של global6.py יחשב את שכרם של שלושה סוגי עובדים בהתבסס על ערכי קלט ומשתנים גלובליים.

#!/usr/bin/env python3
# זהו קובץ global5.py

# מבנה שכר בסיסי של חברה
בסיסי= 5000
רְפוּאִי= 500
תַחְבּוּרָה= 500 #!/usr/bin/env python3
# זהו קובץ global6.py

# ייבא את המשתנים הגלובליים מ- global5.py
יְבוּאגלובלי 5

# קח את שם העובד
שֵׁם= קֶלֶט('הזן את שם העובד:')
# קח את שם הפוסט
הודעה= קֶלֶט('היכנסו לפוסט:')

# אתחל את משתנה השגיאה
שְׁגִיאָה= שֶׁקֶר

# בדוק את המשרה והגדר שכר בסיס על בסיס התפקיד
אם(הודעה.עֶלִיוֹן() == 'מנכ'ל'):
בסיסי=גלובלי 5.בסיסי+(גלובלי 5.בסיסי*0.4)
אליף(הודעה.עֶלִיוֹן() == 'מנהל'):
בסיסי=גלובלי 5.בסיסי+(גלובלי 5.בסיסי*0.25)
אליף(הודעה.עֶלִיוֹן() == 'רואת חשבון'):
בסיסי=גלובלי 5.בסיסי+(גלובלי 5.בסיסי*0.15)
אַחֵר:
# הגדר את השגיאה כ- true אם ערך הפוסט לא נמצא
שְׁגִיאָה= נָכוֹן

# הדפס את המשכורת אם השגיאה היא בדל
אם (שְׁגִיאָה== שֶׁקֶר):
שכר=בסיסי + גלובלי 5.רְפוּאִי+ גלובלי 5.תַחְבּוּרָה
הדפס('השכר של %s הוא %d'%(שֵׁם,שכר))
אַחֵר:
הדפס('הפוסט לא נמצא')

תְפוּקָה:

הפלט הבא יופיע לאחר הפעלת התסריט. כאן, התסריט מופעל פעמיים עם פוסט חוקי ופוסט לא חוקי.

סיכום:

הרעיון של משתנה גלובלי בפייתון מוסבר במדריך זה עם הדוגמאות הפשוטות השונות למשתמשי הפיתון החדשים. אני מקווה שהקוראים יקבלו את הידע המתאים של משתנים גלובליים וגם של משתנים מקומיים לאחר קריאת הדרכה זו.

צפו בסרטון המחבר: פה