logo

AttributeError ב-Python

מהי שגיאה?

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

AssertionError:

סוג זה של שגיאה מתרחש כאשר תנאי הצהרות או הצהרות נכשלים בקוד.

פנדות ונופי

שגיאת ייבוא:

שגיאה זו מתרחשת כאשר אנו מייבאים מודול כלשהו בקובץ ואם המודול אינו קיים.

שגיאת אינדקס:

זה מתרחש כאשר עבור רצף כלשהו, ​​האינדקס שלו מחוץ לטווח.

שגיאת מפתח:

שגיאה זו מועלית ב-Python כאשר איננו יכולים למצוא אף מפתח במילון.

שגיאת שם:

שגיאה זו יכולה להתרחש כאשר איננו מוצאים אף משתנה בהיקף המקומי או הגלובלי.

RuntimeError:

שגיאה זו תועלה כאשר לא ניתן לסווג את השגיאה בכל סוג שהוא.

Indentation Error:

כאשר אנו משתמשים בהזחה שגויה בקוד Python, אז תתרחש IndentationError.

שגיאת מערכת:

כאשר יש שגיאה פנימית, מערכת השגיאה תועלה על ידי המתורגמן.

UnicodeError:

כאשר יש שגיאת קידוד או פענוח הקשורה ל-Unicode ו-UnicodeError תועלה.

ValueError:

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

ZeroDivisionError:

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

EOFError:

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

מאמר זה מוקדש בעיקר ל-AttributeError.

מה זה AttributeError?

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

אנו יכולים להבין את הסיבה ל-AttributeError ב-Python על ידי הדוגמאות הבאות:

סֵלֶנִיוּם

דוגמה 1:

כאשר אנו מיישמים פונקציה על סוג נתונים אחר שאינו אפשרי

 a=15 a.append('javatpoint') 

תְפוּקָה:

AttributeError ב-Python

הֶסבֵּר:

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

דוגמה 2:

יש סיכוי של AttributeError באיות שגוי של התכונה.

 string = 'you will learn each coding tutorial from '.fst('Javatpoint') print(string) 

תְפוּקָה:

AttributeError ב-Python

הֶסבֵּר:

בקוד שלמעלה, יש לנו תכונה string, ואנו מיישמים את התכונה fst, כך שתהיה AttributeError שהתכונה הזו לא קיימת עבור המשתנה.

דוגמה 3:

נוכל לקבל את AttributeError אם ננסה לבצע הפניה שגויה עבור משתנה מחלקה כלשהו.

 class Javatpoint(): def __init__(self): self.var1 = 'This is for JavatPoint' obj = Javatpoint() print(obj.var1) print(obj.var2) 

תְפוּקָה:

למד ציון דיוק
AttributeError ב-Python

הֶסבֵּר:

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

הפתרון להתמודדות עם השגיאה או החריגה:

ב-Python או בכל שפת תכנות, אנו יכולים להשתמש בטיפול חריג או שגיאה באמצעות הצהרות try and except.

דוגמה 4:

 class Javatpoint(): def __init__(self): self.var1 = 'This is for javatpoint' obj = Javatpoint() try: print(obj.var1) print(obj.var2) except AttributeError: print('There is no such attribute') 

תְפוּקָה:

AttributeError ב-Python

הֶסבֵּר:

בקוד לעיל, יש לנו מחלקה ומשתנה בשם var1. בהצהרת try, אנו מנסים להתייחס ל- var1 ו- var2. נוכל להפנות את ה-var1, ונדפיס את ההצהרה עבורו, אבל נקבל את AttributeError להפניה ל-var2. אז, התוכנית תיכנס ל-except block, ואנחנו נדפיס את ההצהרה, שנכתבת רק עבור תנאי השגיאה.