מה עדיף - קוד קריא או קוד קצר?

אני מקבל הערות מהבודק האוטומטי בסגנון הזה:

הבודק האוטומטי: הנה אתגר מעניין: האם אפשר לבדוק שערך שווה ל־True בצורה קצרה יותר?

ברור שאפשר - כך: אם אמת אז. אבל אני מעדיף את הקוד הקריא שהוא: אם בוליאן שווה אמת אז.

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

if flag == True: → if flag:

מה דעתכם?

לדעתי במקרה הזה גם בלי ההשוואה זה קריא וכל מתכנת יבין למה הכוונה - זו כבר קונבנציה. אני לא חושבת שזה פחות קריא (או לפחות אני לא חושבת שזה יהיה פחות קריא אחרי כמה חודשים שמתרגלים לזה) מאשר פונקציות בסיסיות או מבנים בסיסיים שכל אחד מכיר גם אם השם שלהן לא הכי אינדיקטיבי… אדם שאינו מתכנת כנראה גם לא יבין למה הכוונה ב-tuple או ב-int למשל

לייק 1

אז השאלה למה צריך את ההערה הזו? או שזה מובנה במערכת ואין איך לשנות?

הרעיון לדעתי הוא שקוד יעיל וקריא הוא קוד כמה שיותר קצר ולכן הוא מעיר על זה כדי חאפשר לך לדעתשיש דרך קצרה יותר (ולמים תהיה גם קריאה יותר)

העניין של קריא הוא עניין של הכרות עם השפה ולכן אולי לנו זה מוזר אבל שמתרגלים זה פשוט נהיה הגיוני (: ואז קצר קריא ויפה (:

היי,

בגדול כאשר עובדים עם ערך בוליאני, אין צורך לבצע השוואה אל הערך המצופה אלא להשתמש במנגנונים של השפה:
במקום if some_variable == True נכתוב: if some_variable

במקום if some_variable == False נכתוב: if not some_variable

איתמר

היי, המערכת זו מערכת שאנחנו כתבנו ולכן ודאי שאפשר לשנות :slight_smile:
הקונבנציה היא לא להשוות ל־True או ל־False כמו שנכתב כאן לפניי, ואפילו יש התייחסות לכך ב־PEP8, התקן לסגנון הכתיבה בפייתון (מצורפת תמונה).

למה? כי זה מיותר, וכי בתכל’ס, יותר נעים לקרוא דברים כמו:

if user_is_logged_in:
    print("Yay")

אבל אני מניח שיש בזה גם מידה של הרגל :slight_smile:


2 לייקים